最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

小學(xué)生都能看得懂 ?。?! 一些程序?yàn)槭裁从胻xt形式打開是亂碼的?

2023-08-20 22:07 作者:普通の狐貍  | 我要投稿

? 我很小的時(shí)候有過一個(gè)想法就是將后綴exe(可執(zhí)行文件)的文件改為txt(文本文件)再打開會(huì)發(fā)生什么,這樣做過的人都知道吧,打開后文件會(huì)亂碼.那為什么這些文件打開后會(huì)亂碼?既然亂碼了為什么計(jì)算機(jī)依舊能夠執(zhí)行呢?

?計(jì)算機(jī)中的數(shù)據(jù)都是以二進(jìn)制存儲(chǔ)的(例如1001) ,這些數(shù)據(jù)要轉(zhuǎn)換成我們能看的東西,這個(gè)過程叫編碼(ChatGPT這么說的,我印象中好像叫編碼應(yīng)該我記錯(cuò)了,但這不重要,如果不是專業(yè)去了解就記住這個(gè)過程好了),然后這個(gè)轉(zhuǎn)換相當(dāng)于翻譯工作,把0和1組成得數(shù)據(jù)翻譯成屏幕上的內(nèi)容

P1 數(shù)制間的轉(zhuǎn)換

如上圖計(jì)算器↑

這里做一下聲明

  • HEX表示十六進(jìn)制

  • DEC表示十進(jìn)制。

  • OCT表示八進(jìn)制

  • BIN表示二進(jìn)制。

在這張圖(P1)中選擇了DEC(十進(jìn)制)并輸入114514(相當(dāng)于把十進(jìn)制zhuan),八進(jìn)制、二進(jìn)制、還有十六進(jìn)制都出來了,計(jì)算機(jī)就是這么將這些二進(jìn)制數(shù)據(jù)轉(zhuǎn)換的,但是我們?cè)谖谋疚臋n中輸入一些中文內(nèi)容,又是怎么被顯示出來呢?

我們先拋開問題來講另一個(gè)與之相關(guān)的知識(shí)。

相比很多人都知道這個(gè)東西吧,像KB,MB,GB等,這些是比較常用的存儲(chǔ)單位,還有一些比如說B(字節(jié)Byte),b(bit)(大寫和小寫的b不是同一個(gè)東西?。。?b的話就是最小單位,1b只能存儲(chǔ)0或1,8個(gè)b又是一個(gè)B,雖然一個(gè)B很小的單位,但它能夠存儲(chǔ)很多東西,比如ASCII,一種計(jì)算機(jī)能夠理解的語言,就是前面所說的翻譯工作,在這個(gè)翻譯工作中ASCII如同字典,下面展示了一些Byte代表的ASCII值:

00100000 代表空(沒有任何東西)

00100001代表!

00100010代表"

00100011代表#

00100100代表$

00100101代表%

00100110代表&

00100111代表'

00101000代表(

00101001代表)

00101010代表*

00101011代表+

現(xiàn)在你們應(yīng)該能夠理解一些特殊的符號(hào)(上面的括號(hào),加減符號(hào)等)怎樣存儲(chǔ)在計(jì)算機(jī)并顯示在電腦屏幕上了。

把話拉回一些。

我們打開的txt文件(文本文件)并不是在計(jì)算機(jī)中就長(zhǎng)這樣,他們?cè)臼且淮?和1,只不過打開的過程中顯示txt文件的程序?qū)⑦@串二進(jìn)制文件轉(zhuǎn)化成"人話"并且顯示出來.

顯示的文字也是這樣,他們經(jīng)過了一些轉(zhuǎn)變,原來只是0和1后來轉(zhuǎn)化成了文字,你們是否好奇0和1是如何轉(zhuǎn)化成文字呢?

這要說到另一個(gè)東西了,它叫UTF-8,當(dāng)然還有Unicode,跟上面ASCII的性質(zhì)一樣,也相當(dāng)于字典,但是咱們中國(guó)人的漢字多得很,它們一個(gè)字節(jié)也就八個(gè)bit(打個(gè)比方:1字節(jié)可以這樣表示00000000,每個(gè)0就是一個(gè)bit),這么點(diǎn)用來表示字母還行(畢竟英語就26個(gè)字母),但是漢字卻不夠,怎么辦呢?一個(gè)字節(jié)不夠就用兩個(gè),兩個(gè)字節(jié)不用就用三個(gè),但是能用少點(diǎn)就少點(diǎn),畢竟每個(gè)字節(jié)都是空間,得達(dá)到節(jié)省空間得目的,就得少用點(diǎn)字節(jié),現(xiàn)在表示以2-3字節(jié)每個(gè)字居多。比較多的是2個(gè)字節(jié)吧,舉個(gè)簡(jiǎn)單的例子(.)左邊括號(hào)是英文里的句號(hào)也就是點(diǎn)(。)而這個(gè)是中文的句號(hào),它不僅是外形上的變化而且細(xì)心觀察(你可以嘗試把它選中)你會(huì)發(fā)現(xiàn)這個(gè)中文的句號(hào)要比英文的寬,就是因?yàn)橹形乃嫉淖止?jié)較多(如有錯(cuò)誤評(píng)論區(qū)指正)

搞清楚這一點(diǎn),亂碼的原因就很好說了,可能很多人還是一臉懵,那我再稍微解釋一下。

用兩個(gè)字節(jié)來存儲(chǔ)或三個(gè)字節(jié)存儲(chǔ)一個(gè)漢字,但是兩個(gè)或三個(gè)間的0和1能夠不重復(fù)的組合很多甚至比漢字還多,有些組合還沒有被定義,就比如advan是個(gè)不存在的單詞,我們無法將它翻譯。一個(gè)道理,計(jì)算機(jī)也是如此。這是導(dǎo)致亂碼的一個(gè)原因。

還有個(gè)原因,exe文件是二進(jìn)制文件,它是寫給計(jì)算機(jī)看的而不是寫給人看的,自然沒有遵循UTF-8等的規(guī)矩。管它UTF-8會(huì)翻譯成什么人話,它能執(zhí)行而不是既能執(zhí)行又能看得懂,有些跌跌撞撞勉強(qiáng)能被翻譯的硬是被這個(gè)解碼的翻譯成鬼話(大概長(zhǎng)這樣了PK

江门市| 泗阳县| 赣州市| 荃湾区| 潜江市| 肇源县| 马龙县| 新乡市| 嘉鱼县| 同江市| 延川县| 新巴尔虎左旗| 溆浦县| 灯塔市| 山西省| 沾益县| 铁岭县| 九江市| 通道| 泸溪县| 徐水县| 淄博市| 梓潼县| 吉林市| 潍坊市| 石棉县| 镇雄县| 大新县| 临颍县| 永寿县| 盐亭县| 赫章县| 沂源县| 镇雄县| 宾阳县| 裕民县| 通化市| 陇西县| 霞浦县| 阿城市| 连南|