c语言 乱码转化为16进制_面向小白的C语言科普教程(一)文件和扩展名、编码和十六进制...
前言
本系列文章偏向科普向,出發(fā)點是因為某乎每天都給我推送有關(guān)C語言基礎(chǔ)的低質(zhì)問題,答得多了發(fā)現(xiàn)不僅收不到贊,甚至?xí)驗樘踔嵌舴邸K悦壬藝L試給有想要了解、學(xué)習(xí)C語言及相關(guān)計算機知識的同學(xué)復(fù)制一條自身覺得可能會比較高效的路線的想法,目標是讓電腦小白在學(xué)習(xí)的過程中了解計算機自底向上盡可能全面的相關(guān)知識,進而真正地學(xué)會C語言。畢竟C語言與其他語言不同,比較偏向底層,如果完全不了解體系結(jié)構(gòu)和操作系統(tǒng)相關(guān)的知識,學(xué)到指針一章會變得非常吃力。
文章并不能代替完整全面的教程,更不能代替實踐操作。如果讀者不滿足于科普,而是想切切實實地找到程序員相關(guān)的工作,最好還是能夠選擇更加系統(tǒng)的書面教材,并切記編程是一門實踐課,必須有目的地練習(xí),積累相當(dāng)規(guī)模的代碼量,踩過足夠多的坑,才能在工作中游刃有余。
任何一個電腦小白開始對計算機感興趣的契機,一定是他開始意識到雙擊【此電腦】(舊稱【我的電腦】)能打開【資源管理器】,里面有著各式各樣的【文件】,而不只滿足于雙擊【桌面】上或者【開始菜單】里安裝的各種軟件的【圖標】。
電腦小白當(dāng)然也知道資源管理器里看到的文件分為很多類型,比如音頻文件、視頻文件、word文件、excel文件,但是你問小白這些文件該怎么區(qū)分,小白大概會覺得就是【文件名】左邊的圖標長得不一樣,還有就是雙擊之后會啟動不同的軟件。如果你教小白寫個【批處理】,告訴他保存為bat文件,大概率會弄出一個1.bat.txt這樣的文件名。
所以但凡是懂點電腦的,裝機后第一件事是需要到【文件夾選項】里把【隱藏已知文件的擴展名】取消勾選。這時候會發(fā)現(xiàn)電腦上的文件都變成了http://123456.xxx這樣的名字,其中最后有個句點加(通常是)三個字母,這三個字母就叫做【擴展名】,起著提示這個文件是什么文件類型,以及啟動對應(yīng)的軟件打開它們的作用。
你可以看見音頻文件有mp3,視頻文件有mp4、avi,word文件是docx,下載的壓縮包是zip、rar,解壓之后里面有個帶圖標的exe雙擊就能用,還有很多的圖標上畫著兩個齒輪的dll文件雖然不知道是什么鬼但是好像聽大佬說過千萬不能亂刪。
你還知道,文件有大小,比如文本文件比較小,圖片和音樂文件大一些,視頻文件最大。或許還聽說過賣U盤的說什么1KB=1024B,1MB=1024KB,1GB=1024MB之類的單位換算。
文件里面到底寫著啥,為什么不親自打開看一看呢。我們知道雙擊txt文件能打開記事本看到里面的內(nèi)容,其實記事本作為最簡單的編輯器,其實是能打開并顯示任意文件的內(nèi)容的。嘗試:用記事本打開一些別的擴展名的文件,比較方便的做法是先打開記事本,然后把文件圖標從資源管理器拖動到記事本里。不要用記事本打開超過1MB大小的文件,會很卡,另外如果不是自己熟悉的文件,不要修改和保存以免損壞。
于是你看到了“亂碼“,包括各種奇怪的字符和不認識的漢字。所謂的亂碼,并不是代表計算機出錯了,只是說明你沒有看懂,或者閱讀的方式不太對,類似你第一次看到文言文的而且還是用繁體字寫的感受。沒關(guān)系,下載一個二進制編輯軟件,例如UltraEdit或者WinHex,用這類軟件來打開,可以看到文件真實的面貌。
【字節(jié)Byte】是計算機程序世界中的最小操作單位,一個字節(jié)由8個【比特位bit】組成。bit就是我們常說的【二進制】位,有0和1兩種狀態(tài),那么8個bit最多能表示2的8次方也就是256種不同的情況,也就是取值范圍為0-255的一個數(shù)字。
可見一個字節(jié)能表示的范圍足夠【編碼】所有的英文【字符】,包括大小寫字母、數(shù)字、英文符號。人類于是制定了【ASCII】編碼表,規(guī)定從48到58代表數(shù)字0到9,從65到90代表大寫字母A到Z,等等。嘗試:有種方法可以直接鍵入ASCII的序號來輸入字符,打開記事本,按住Alt鍵,用數(shù)字小鍵盤輸入65,放開Alt鍵,可以看到輸入了大寫字母A。
由于寫下8個01010101這樣的二進制數(shù)比較費紙而且很難閱讀,所以人類通常用兩個【十六進制】數(shù)來表示一個字節(jié)。十六進制就是在十進制基礎(chǔ)上加了ABCDEF六個數(shù)字,數(shù)數(shù)是這樣數(shù)的0 1 2 … 9 A B … F 10 11 … 9F A0 A1 … FE FF 100。在二進制編輯軟件中,可以看到任何文件存放的都是十六進制的數(shù)據(jù)。
比如txt文件看到的就是你在記事本里保存的內(nèi)容,英文和數(shù)字占一個字節(jié),漢字一般占兩個字節(jié)(因為漢字顯然大于256個,但少于256*256=65536個)。
比如zip文件雖然看不大懂,不過【文件頭】總是有兩個字符“PK”,exe和dll文件雖然也看不大懂但文件頭總是有兩個字符“MZ”。
比如bmp文件其實是能看懂其中一部分的,那就是圖像的像素數(shù)據(jù),每個像素占用3個字節(jié),RGB分別取值0-255,可以表示約1600萬種不同的色彩(是不是想起了不管什么手機攝像頭,廣告詞上都是這個數(shù)字)。嘗試:用畫圖填充一個黑色的BMP文件,然后用二進制編輯軟件把畫面中部隨便一些像素改成白色(不要修改文件頭)。
總結(jié)
以上是生活随笔為你收集整理的c语言 乱码转化为16进制_面向小白的C语言科普教程(一)文件和扩展名、编码和十六进制...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 字符大对象_第02期:MyS
- 下一篇: mysql列偏移_MySQL:如何对待分