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