為什么計(jì)算機(jī)只能讀懂0和1呢挺物?
這涉及到一個(gè)表達(dá)的問題忱屑,就是說你在計(jì)算機(jī)里面要用什么東西來表達(dá)一個(gè)狀態(tài)篮昧。
計(jì)算機(jī)是人設(shè)計(jì)的母债,在設(shè)計(jì)計(jì)算機(jī)的時(shí)候采用了二進(jìn)制午磁。就是說只用0和1來表達(dá)所有的數(shù)據(jù)和指令。
那為什么要采用二進(jìn)制呢毡们?
因?yàn)槎M(jìn)制在實(shí)現(xiàn)上非常簡單迅皇,只用高低電位或者開關(guān)就可以表示了,而二進(jìn)制和我們目前用的十進(jìn)制有同樣的表達(dá)力衙熔。
如果是用十進(jìn)制的話登颓,那我們就需要找到一個(gè)東西它可以有10種狀態(tài),這點(diǎn)是很難做到的红氯。
但是也不是說計(jì)算機(jī)只能用二進(jìn)制框咙,例如DNA就是用CGTA四種堿基來表示的,是四進(jìn)制痢甘。只不過目前我們用的計(jì)算機(jī)都是用二進(jìn)制的喇嘱。
IOS跟安卓他們分別寫的是什么樣的語言?
其實(shí)IOS呢是IOS主要是用objective-c和swift寫的塞栅,swift是蘋果自己發(fā)明的一個(gè)語言婉称,因?yàn)镮OS是蘋果的系統(tǒng),他就是為了優(yōu)化蘋果的系統(tǒng),所以自己發(fā)明了一種語言王暗。
安卓主要是用java來寫的。
?像這些語言他們是哪里不一樣呢庄敛?它們都是英語嗎俗壹?
代碼是主要是語法不一樣,咱們上面提到的所有語言都是英文的藻烤,就他們都是26個(gè)字母構(gòu)成绷雏。代碼的語法不一樣就好像英文和中文這種語法不一樣。
語言就是一種描述怖亭,就是說它會(huì)給你提供一些工具涎显,比如講打印,你就可以把你想要的字符串打印到電腦上兴猩,Python里就會(huì)用print()來代表打印期吓,c就會(huì)用printf()。
用文字來講語言是什么太抽象了倾芝,可以直接看一下讨勤,就大概知道語言到底是個(gè)什么東西。
比如這是一段python的代碼晨另,
這是一個(gè)c的代碼
現(xiàn)在看不懂代碼的意思沒關(guān)系潭千,先看他們的長相,可以看出python是沒有c中的那些大括號(hào)和分號(hào)的借尿。具體的更多的差別后面再介紹刨晴,這里先對代碼有個(gè)初印象。
做某一件事情一定要用一種語言來寫嗎路翻?
其實(shí)語言之間它們的語法設(shè)計(jì)是不一樣的狈癞,某一種語言就會(huì)更適合做某些事情,比如C語言就會(huì)更底層帚桩,更適合寫一些硬件之類的或者效率要求更高的亿驾,像我們做數(shù)據(jù)處理主要用python,它就會(huì)更簡單账嚎,但是他就會(huì)效率沒有那么高莫瞬。
但是并不是說做某件事情一定要用某種語言來寫的,理論上來說現(xiàn)在常用的計(jì)算機(jī)編程語言都是圖靈完備的郭蕉,簡單說就是什么事情都可以做的疼邀。
?如果每個(gè)語言能做的事情都一樣,那為什么做某些事情會(huì)多用某些語言呢召锈?
這里涉及到很多因素旁振,例如某些語言的某些語法會(huì)更適合某些場景,如Python非常簡潔易懂,很適合做一些應(yīng)用層的簡單事情拐袜;或者某些歷史遺留原因吉嚣,也就是說大家都用了某種語言,因此這個(gè)語言的社區(qū)越來越強(qiáng)大蹬铺,工具也越來越多尝哆,后來的人也就都用這個(gè)語言了。
要知道我們寫代碼并不是所有的都從頭開始寫的甜攀,會(huì)有很多人他寫了一些工具放在那里秋泄,很多代碼都是在別人的基礎(chǔ)上進(jìn)行更改、迭代的规阀,所謂的站在巨人肩膀上恒序。比如python用于信息處理數(shù)據(jù)挖掘這些領(lǐng)域最多,因?yàn)樗蟹浅M晟频墓ぞ哝溗常泻芏喙ぞ呖梢杂谩?/p>
下一節(jié)會(huì)介紹:
語言有高級(jí)低級(jí)之分歧胁,越高級(jí)的語言就越厲害嗎?
計(jì)算機(jī)領(lǐng)域常說的hello world是什么彤敛?
代碼到底可以做什么与帆?