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