DOUG LLYOYD:所以十六進制數, 好像我們需要另一個基數 方案對不對? 那麼,大多數西方文化, 正如你可能很熟悉, 使用十進制系統 - 基礎 10,來表示數字數據。 我們有數字0, 1,2,3,5,6,7,8,9。 如果我們需要表示 值超過九高, 我們可以將這些數字 使用位值的概念。 因此,對於10,我們有一個1 數字其次是0位 我們直觀地理解 這就是我們正在做的 還有我們乘 第1次10, 然後加入0共計10。 計算機做一些漂亮 類似的,因為你可能熟悉, 與二進制系統 - 基座2。 所不同的是有 僅存在2位 工作with-- 0和1。 所以我們的地方價值, 而不是被之一, 十,百,千,因為他們 將在十進位制, 是一,二,四,八,等等。 這裡的東西雖然, 那些0和1的,特別是 如果我們是計算機科學家 而且我們做了很多節目 或使用電腦工作,打算 要看到很多的二進制數字。 而那些0和1的大型連鎖店 可以是非常困難的解析。 我們不能只看一個字符串 0和1的和必要知道 究竟它是什麼。 但它仍然很有用,能夠 以同樣的方式明確數據 一台計算機一樣。 我們擁有的這個概念 十六進制系統,這是 鹼,代替底座10或基體2 16,。 這意味著我們有16位數字 用,而不是10或2至工作。 它是一個更 簡潔的方式來表達 在計算機系統上的二進制信息, 它更加人性理解的。 因此,我們有數字 0至9,然後 我們也有這些額外的6 digits--一個, B,C,D,E,和f,它們代表10, 我們的10個概念,11,12, 13,14和15,以十進制。 有時,順便說一句,你也 看到這些A到F的為大寫A 至F,這是 這樣,我傾向於這樣做。 這只是我的首選 風格,但無論是好的, 他們都表示很 同樣的事情。 那麼,為什麼是十六進制很酷? 為什麼我們需要用這個 其他附加的基礎? 我們已經有2 10,為什麼我們需要16? 井16是2的冪,所以 每個十六進制數字,0至f, 對應於一個獨特的 順序,或者獨特的安排 的4個二進制位,4位。 所以在這個意義上,我們可以表達 很長的,複雜的,二進制數字 在十六進制中 更簡潔的方式, 不會丟失信息或具有至 做的特別繁瑣的轉換 這些數字。 所以,正如我剛才所說, 每個十六進制數字 對應於一個獨特的 4個二進制位的安排。 所以二進制串0000 對應於十六進制數字0。 0110對應十六進制數字6。 與1111對應 為十六進制數字F。 如果你正在尋找 這張圖,特別是 如果你正在尋找的 圖表的左側, 你已經可以看到有一個 一個模棱兩可的問題位在這裡。 小數0是非常 從十六進制0別無二致, 不是事實,這是在其他 一列,上面寫著十六進制。 但是,我們可能不會總是 有一個列有。 一般來說,當我們表達 數字到十六進制 明確區分 他們從十進制, 我們通常前綴他們 與0x作為前綴。 0X意味著什麼在現實中, 它只是一個線索,我們作為人類 這就是我們即將看到, 或即將開始解析, 是一個十六進制數。 顯然對於較高位的a,b, C,D,和f,其對應於:10-15 這是非常明確的是 這是一個十六進制數。 而事實上,任何十六進制 一些有字母在裡面, 可能是很明顯 以十六進制數。 但是,儘管如此,對於 為了清楚起見,這是 總是一個好主意 前綴每次 參考數字為十六進制 通過前面加上一個0X號。 因此,二進制,因為我們 說,有位值。 還有那些地方,三三兩兩的地方, 一個四肢著地的地方,和八分的地方。 和小數也有地方的價值觀,在 的,數十,數百,數千 大家都可能記得 從小學。 和十六進制是沒有 這裡的例外,真的。 它也有位值,而是 被2的冪的10或權力, 他們是16的權力。 於是我們看到了一些這樣的我們 很清楚的知道這是397,對不對? 那麼,如果我們看到這樣一個數字, 我們知道這是不是397了。 這是十六進制 第三十九個。 這不是397,這意味著 不同的東西, 因為我們使用的是16的所有權力 我們的位置值而不是權力 10。 事實上,這個地方的值這裡會 是那些地方,在sixteens的地方, 與兩百五十西克西斯地方, 這符合我們的那些想法 的地方,十位,和數百 地方,如果數為397。 但因為它是0X 397,我們有 一個個位,sixteens的地方, 和一個兩百五十亂七八糟的地方。 或者,一個16到0的地方,這是1。 甲16至第一電源的地方,16。 一個16平方的地方,256, 等等,等等,等等。 所以,這個數字實在是3次16 平方,再加上9次16,加7。 我沒有做數學在這裡,但它不是 397,它是多,比大得多。 同樣,我們可以有0x的ADC, 那麼這是一個時代16平方。 或者,如果我們把這種對我們的想法 十進制數,這是10倍 16平方,加上d次 16,或加13倍16。 如果你還沒有記憶,不用擔心 即d為13,之類的東西, 有沒有太多的 這些字母數字 它會成為 直觀的很快。 所以,這同樣是10倍16平方, 加13倍16,加12倍1。 所以0X ADC。 所以,正如我所說,每 組4個二進制位 對應於一個單一 十六進制數字, 因此它實際上是真的 容易改變來回 之間的十六進制和二進制。 如果你有這個長字符串 二進制數字,所有你需要做的 在分組開始他們的權利 至左的4組。 然後您可以整合 成十六進制數, 嚴重地限制的數 數字你必須在精神上處理。 代替32 0和1的, 我們將在第二次看到, 你也許可以得到它下來 剛剛8位十六進制數字,很多 更簡潔。 圖表幾張幻燈片後面會 幫你找出這種映射, 雖然,再次你會 很快記住它。 我們將通過一個例子,現在。 因此,如果我們有一些像這樣, 這真的是大的二進制數, 或者這似乎是 大量二進制數。 而我之所以這麼說,這是 只是so--它是一個龐然大物,對不對? 有這麼多的0和1的出現。 但是,我們可能不 真的有感是什麼 這個數字的大小確實是。 我們沒有任何想法是什麼 將對應於小數。 而事實上,我們甚至不會看到什麼 對應於十進制現在。 我們也許能夠 的方式表達這一點, 可以給我們一些更多的信息 關於到底有多大這個數字。 因此,讓我們去的轉換過程。 我們需要做的第一件事 做的是我們要組 這些數字出成組 4,從右側開始 和工作到左邊。 這裡正好是32位 在這裡,這意味著我們有 8組,每組4一個很好的徹底決裂。 請記住,每個組 4在這裡,唯一對應 一個十六進制數字。 因此,我們將重新開始建設我們 從右邊數和工作離開了。 那麼什麼是1101? 那麼我們做數學題在我們的頭上, 我們有1在八分的地方,一個1 在四肢著地的地方,一個0的三三兩兩 的地方,和一個1中的那些地方。 這是8加4加1, 我們會知道的13。 但是,我們可能不會寫13個, 因為我們正在使用十六進制。 我們需要將其轉換為十六進制 當量為13,其為d。 0011,那麼這是一個0, 八分的地方,一個0四肢著地的地方, 1,在三三兩兩的地方, 和一個1中的那些地方。 這是3。 我的意思是繼續這樣做 再次,我們這裡有9。 然後11,但這是B,召回。 2,10--或A-- 6和4。 而這樣非常大的字符串 的0和1的頂部的 更簡潔的表達 十六進制的0X 46a2b93d。 好了,好了,我們已經學到了新的 酷技巧,有什麼意義呢? 我們可能不會用這一切的 時間的推移,我們將很快看到, 我們用十六進制相當 很多程序員。 不一定是 做數學有它的目的, 但由於很多次 在我們的系統內存地址 以十六進制表示。 這是一個非常簡潔的方式來表達 否則麻煩,二進制數。 所以,再一次,你可以 不是 - 你可能 不會做任何數學 有了它,你是不是 將是乘法 十六進制數字加在一起, 或做任何奇怪之類的。 但它是一個有用的技能有 這樣你就可以表達和理解 存儲器地址和其他 C.中使用數據的方式 我是道格·勞埃德,這是CS50。