學習筆記-深入理解計算機系統03
1、計算機中三種最重要的數字編碼:A.無符號編碼:基于傳統的二進制表示法,表示大于或者等于零的數字;B.二進制補碼:用于表示有符號整數的最常見方式;C.浮點數:用于表示實數;
2、計算機用有限的位數來對一個數字進行編碼,所以當數字太大時就會產生“溢出”。
3、二進制整數運算可以滿足數學整數運算的許多基本特性,例如成法結合率、交換率等,但實數(浮點數)運算卻有不同的數學屬性,例如實數運算不具結合性。這種差異有不同的編碼方式所引起。
4、在大多數計算機中都將8位bit作為一個字節,字節是最小的存儲單位;
5、十進制轉換成二進制、十六進制的方法:
5.1、十進制數是2的冪時,也就是x=2的n次方。轉換成二進制的方法是“1后面跟n個零”。例如16=2的4次方 二進制是10000(1后面4個零),2046是2的11次方 二進制是100000000000(1后面11個零);轉換成十六進制的方法是“用n除以4的得到商j和余數i,用2的i次方后跟j個零”。例如16=2的4次方 十六進制是10(4除以4得到余數0和商1,2的0次方是1,后面再跟1個零),2046是2的11次方,十六進制是
800(11除以4得到余數3和商2,2的3次方是8,后面再跟2個零);
5.2、一般的十進制數(相對于是2的冪而言),使用除法來處理一般數的轉換,即用十進制數x除以16得到商q和余數r,有公式x=q*16+r。該公式可以擴展為通用轉換公式:x = q * base + r,即x除以進制基數(如二進制是2、16進制是16、8進制就是8)得到商q和余數r。需要注意的是最先得到的值是最低位的數。
6、信息編碼的大端法/小端法:表示對象的字節排序規則有兩種——大端法與小端法;大端法是從最高有效字節向最低有效字節的順序進行存儲(即最高有效字節在前面)的方法,而小端法正好相反從最低有效字節向最高有效字節進行存儲(即最低有效字節在前面)。舉例來看,對于0x012345這個十六進制數來說,按大端法存儲時的字節順序是:01-->23-->45,反之小端法是:45-->23-->01。我們常用的Intel的機器遵循小端法,而IBM、Sun的大多數機器都遵循大端法,而且很多微處理器的芯片都可以通過外部設置以在任何一種模式下工作。
7、大端法/小端法強調的是字節的順序:一個字節是8位(bit)即兩位16進制數,所以一定要注意反向時的單位(是字節)。例如:0x1234的小端法是:3412,而不是4321。
1、計算機中三種最重要的數字編碼:A.無符號編碼:基于傳統的二進制表示法,表示大于或者等于零的數字;B.二進制補碼:用于表示有符號整數的最常見方式;C.浮點數:用于表示實數;
2、計算機用有限的位數來對一個數字進行編碼,所以當數字太大時就會產生“溢出”。
3、二進制整數運算可以滿足數學整數運算的許多基本特性,例如成法結合率、交換率等,但實數(浮點數)運算卻有不同的數學屬性,例如實數運算不具結合性。這種差異有不同的編碼方式所引起。
4、在大多數計算機中都將8位bit作為一個字節,字節是最小的存儲單位;
5、十進制轉換成二進制、十六進制的方法:
5.1、十進制數是2的冪時,也就是x=2的n次方。轉換成二進制的方法是“1后面跟n個零”。例如16=2的4次方 二進制是10000(1后面4個零),2046是2的11次方 二進制是100000000000(1后面11個零);轉換成十六進制的方法是“用n除以4的得到商j和余數i,用2的i次方后跟j個零”。例如16=2的4次方 十六進制是10(4除以4得到余數0和商1,2的0次方是1,后面再跟1個零),2046是2的11次方,十六進制是
800(11除以4得到余數3和商2,2的3次方是8,后面再跟2個零);
5.2、一般的十進制數(相對于是2的冪而言),使用除法來處理一般數的轉換,即用十進制數x除以16得到商q和余數r,有公式x=q*16+r。該公式可以擴展為通用轉換公式:x = q * base + r,即x除以進制基數(如二進制是2、16進制是16、8進制就是8)得到商q和余數r。需要注意的是最先得到的值是最低位的數。
6、信息編碼的大端法/小端法:表示對象的字節排序規則有兩種——大端法與小端法;大端法是從最高有效字節向最低有效字節的順序進行存儲(即最高有效字節在前面)的方法,而小端法正好相反從最低有效字節向最高有效字節進行存儲(即最低有效字節在前面)。舉例來看,對于0x012345這個十六進制數來說,按大端法存儲時的字節順序是:01-->23-->45,反之小端法是:45-->23-->01。我們常用的Intel的機器遵循小端法,而IBM、Sun的大多數機器都遵循大端法,而且很多微處理器的芯片都可以通過外部設置以在任何一種模式下工作。
7、大端法/小端法強調的是字節的順序:一個字節是8位(bit)即兩位16進制數,所以一定要注意反向時的單位(是字節)。例如:0x1234的小端法是:3412,而不是4321。