進(jìn)制也是進(jìn)制位,是人們規(guī)定的一種進(jìn)位方法,。對(duì)于任何一種進(jìn)制—X進(jìn)制,表示某一位置上的數(shù)運(yùn)算時(shí),就是逢X進(jìn)一位,十進(jìn)制就是逢十進(jìn)一,十六進(jìn)制就是逢十六進(jìn)一,二進(jìn)制就是逢二進(jìn)一。
為噶爾等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及噶爾網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站制作、網(wǎng)站建設(shè)、噶爾網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!十進(jìn)制 | 二進(jìn)制 | 八進(jìn)制 | 十六進(jìn)制 |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
16 | 10000 | 20 | 10 |
1.6.1 二進(jìn)制
二進(jìn)制是計(jì)算技術(shù)中廣泛采用的一種數(shù)制。二進(jìn)制數(shù)據(jù)是用0和1兩個(gè)數(shù)碼表示的數(shù)。它的基數(shù)為2,進(jìn)位規(guī)則是逢二進(jìn)一,借位規(guī)則是借一當(dāng)二。
當(dāng)前的計(jì)算機(jī)系統(tǒng)使用的基本上是二進(jìn)制系統(tǒng),數(shù)據(jù)在計(jì)算機(jī)中主要是以補(bǔ)碼的形式存儲(chǔ)的。
術(shù)語(yǔ) | 含義 |
---|---|
bit(比特) | 一個(gè)二進(jìn)制代表一位,一個(gè)位只能表示0或1兩種狀態(tài)。數(shù)據(jù)傳輸是習(xí)慣以“位”(bit)為單位。 |
Byte(字節(jié)) | 一個(gè)字節(jié)為8個(gè)二進(jìn)制,稱為8位,計(jì)算機(jī)中存儲(chǔ)的最小單位是字節(jié)。數(shù)據(jù)存儲(chǔ)是習(xí)慣以“字節(jié)”(Byte)為單位。 |
WORD(雙字節(jié)) | 2個(gè)字節(jié),16位 |
DWORD | 兩個(gè)WORD,4個(gè)字節(jié),32位 |
1b | 1bit,1位 |
1B | 1Byte,1字節(jié),8位 |
1k,1K | 1024 |
1M(1兆) | 1024k, 1024*1024 |
1G | 1024M |
1T | 1024G |
1Kb(千位) | 1024bit,1024位 |
1KB(千字節(jié)) | 1024Byte,1024字節(jié) |
1Mb(兆位) | 1024Kb = 1024 * 1024bit |
1MB(兆字節(jié)) | 1024KB = 1024 * 1024Byte |
十進(jìn)制轉(zhuǎn)化二進(jìn)制的方法:用十進(jìn)制數(shù)除以2,分別取余數(shù)和商數(shù),商數(shù)為0的時(shí)候,將余數(shù)倒著數(shù)就是轉(zhuǎn)化后的結(jié)果。
28/2=14........0
14/2=7.........0
7/2=3...........1
3/2=1............1
1/2=0............1
28化為二進(jìn)制為:11100
十進(jìn)制的小數(shù)轉(zhuǎn)換成二進(jìn)制:小數(shù)部分和2相乘,取整數(shù),不足1取0,每次相乘都是小數(shù)部分,順序看取整后的數(shù)就是轉(zhuǎn)化后的結(jié)果。
0.43*2=0.86...........0
0.86*2=1.72..........1
0.72*2=1.44..........1
0.44*2=0.88..........0
0.88*2=1.76..........1
0.43的二進(jìn)制數(shù)為:0.11
1.6.2 八進(jìn)制
八進(jìn)制,Octal,縮寫OCT或O,一種以8為基數(shù)的計(jì)數(shù)法,采用0,1,2,3,4,5,6,7八個(gè)數(shù)字,逢八進(jìn)1。一些編程語(yǔ)言中常常以數(shù)字0開始表明該數(shù)字是八進(jìn)制。
八進(jìn)制的數(shù)和二進(jìn)制數(shù)可以按位對(duì)應(yīng)(八進(jìn)制一位對(duì)應(yīng)二進(jìn)制三位),因此常應(yīng)用在計(jì)算機(jī)語(yǔ)言中。
二進(jìn)制轉(zhuǎn)八進(jìn)制
101 101 101 100
5? ? ? 5? ? ?5? ? ?4
八進(jìn)制轉(zhuǎn)二進(jìn)制
7? ? ?4? ? ? 6? ? 2
111 100 110 010
十進(jìn)制轉(zhuǎn)化八進(jìn)制的方法:
用十進(jìn)制數(shù)除以8,分別取余數(shù)和商數(shù),商數(shù)為0的時(shí)候,將余數(shù)倒著數(shù)就是轉(zhuǎn)化后的結(jié)果。
1.6.3 十六進(jìn)制
十六進(jìn)制(英文名稱:Hexadecimal),同我們?nèi)粘I钪械谋硎痉ú灰粯?,它?-9,A-F組成,字母不區(qū)分大小寫。與10進(jìn)制的對(duì)應(yīng)關(guān)系是:0-9對(duì)應(yīng)0-9,A-F對(duì)應(yīng)10-15。
十六進(jìn)制的數(shù)和二進(jìn)制數(shù)可以按位對(duì)應(yīng)(十六進(jìn)制一位對(duì)應(yīng)二進(jìn)制四位),因此常應(yīng)用在計(jì)算機(jī)語(yǔ)言中。
二進(jìn)制轉(zhuǎn)十六進(jìn)制:
0110 1011 1111
?6? ? ???b? ? ? ? f
十六進(jìn)制轉(zhuǎn)換為二進(jìn)制:
a? ? ? ? ?c? ? ?1? ? ? ?5
1010 1100 0001 0101
十進(jìn)制轉(zhuǎn)化十六進(jìn)制的方法:
用十進(jìn)制數(shù)除以16,分別取余數(shù)和商數(shù),商數(shù)為0的時(shí)候,將余數(shù)倒著數(shù)就是轉(zhuǎn)化后的結(jié)果。
1.6.4 C 語(yǔ)言如何表示相應(yīng)的進(jìn)制數(shù)
十進(jìn)制 | 以正常數(shù)字1-9開頭,如123 |
---|---|
八進(jìn)制 | 以數(shù)字0開頭,如0123 |
十六進(jìn)制 | 以0x開頭,如0x123 |
二進(jìn)制 | C語(yǔ)言不能直接書寫二進(jìn)制數(shù) |
int a = 123; //十進(jìn)制方式賦值
int b = 0123; //八進(jìn)制方式賦值, 以數(shù)字0開頭
int c = 0xABC; //十六進(jìn)制方式賦值
//如果在printf中輸出一個(gè)十進(jìn)制數(shù)那么用%d,八進(jìn)制用%o,十六進(jìn)制是%x
printf("十進(jìn)制:%d\n",a );
printf("八進(jìn)制:%o\n", b); //%o,為字母o,不是數(shù)字
printf("十六進(jìn)制:%x\n", c);
1.7 計(jì)算機(jī)內(nèi)存數(shù)值存儲(chǔ)方式1.7.1 原碼、反碼、補(bǔ)碼
1)原碼
原碼有如下特點(diǎn):
最高位表示符號(hào)位,0表示正, 1表示負(fù)
其他數(shù)值部分就是數(shù)值本身絕對(duì)值的二進(jìn)制數(shù)
負(fù)數(shù)的原碼是在其絕對(duì)值的基礎(chǔ)上,最高位變?yōu)?;
例如:以一個(gè)字節(jié)的大小描述
十進(jìn)制數(shù) 15 原碼 0000 1111
十進(jìn)制數(shù) -15 原碼 1000 1111
原碼表示法簡(jiǎn)單易懂,與帶符號(hào)數(shù)本身轉(zhuǎn)換方便,只要符號(hào)還原即可,但當(dāng)兩個(gè)正數(shù)相減或不同符號(hào)數(shù)相加時(shí),必須比較兩個(gè)數(shù)哪個(gè)絕對(duì)值大,才能決定誰(shuí)減誰(shuí),才能確定結(jié)果是正還是負(fù),所以原碼不便于加減運(yùn)算。
2)反碼
對(duì)于正數(shù):反碼與原碼一致
對(duì)于負(fù)數(shù):符號(hào)位不變,其余位值變?yōu)橄喾磾?shù)
例:以一個(gè)字節(jié)的大小描述
十進(jìn)制數(shù) 15 原碼 0000 1111 反碼 0000 1111
十進(jìn)制數(shù) -15 原碼 1000 1111 反碼 1111 0000
3)補(bǔ)碼
在計(jì)算機(jī)系統(tǒng)中,數(shù)值存儲(chǔ)均是以補(bǔ)碼形式存儲(chǔ)。計(jì)算機(jī)中是不存在減法的
補(bǔ)碼特點(diǎn):
對(duì)于正數(shù): 原碼、反碼、補(bǔ)碼相同
對(duì)于負(fù)數(shù):其補(bǔ)碼在反碼的基礎(chǔ)上+1
對(duì)于負(fù)數(shù):補(bǔ)碼符號(hào)位不動(dòng),其余位求反,最后加1,得到原碼
或補(bǔ)碼-1,符號(hào)位不動(dòng),其余位取反,得到原碼
例:以一個(gè)字節(jié)的大小描述
十進(jìn)制數(shù) 15 原碼 0000 1111 反碼 0000 1111 補(bǔ)碼 0000 1111
十進(jìn)制數(shù) -15 原碼 1000 1111 反碼 1111 0000 補(bǔ)碼 1111 0001
以二進(jìn)制方式計(jì)算如下式子(以一個(gè)字節(jié)大小計(jì)算):
9-6:
9 補(bǔ)碼:0000 1001
-6 補(bǔ)碼:1111 1010
9+(-6) 補(bǔ)碼:10000 0011 一個(gè)字節(jié)為8位,最高位1在第九位溢出,舍去 得到
0000 0011換為原碼:0000 0011 換為十進(jìn)制表示 3
在計(jì)算機(jī)系統(tǒng)中,數(shù)值一律用補(bǔ)碼來存儲(chǔ),主要原因是:
統(tǒng)一了零的編碼
將符號(hào)位和其它位統(tǒng)一處理
將減法運(yùn)算轉(zhuǎn)變?yōu)榧臃ㄟ\(yùn)算
兩個(gè)用補(bǔ)碼表示的數(shù)相加時(shí),如果最高位(符號(hào)位)有進(jìn)位,則進(jìn)位被舍棄
1.7.2 數(shù)值溢出
當(dāng)超過一個(gè)數(shù)據(jù)類型能夠存放大的范圍時(shí),數(shù)值會(huì)溢出
有符號(hào)位最高位溢出的區(qū)別:符號(hào)位溢出會(huì)導(dǎo)致數(shù)的正負(fù)發(fā)生改變,但最高位的溢出會(huì)導(dǎo)致最高位丟失。
例如 以char類型為例
char a=127;
char b=1;
printf("%d\n",a+b);//-128
a=127 補(bǔ)碼為:0111 1111
b=1 補(bǔ)碼為:0000 0001
a+b 補(bǔ)碼為:1000 0000 原碼:符號(hào)位不變,按位取反,最后末尾+1 得 1111 1111 +1 即為 -128
由此可是,一個(gè)數(shù)據(jù)類型的大值加1,反而會(huì)因?yàn)橐绯觯玫酱藬?shù)據(jù)類型的 最小值
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁(yè)標(biāo)題:C語(yǔ)言技術(shù)體系自學(xué)筆記(四)-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://jinyejixie.com/article30/coieso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、網(wǎng)站收錄、網(wǎng)站改版、全網(wǎng)營(yíng)銷推廣、電子商務(wù)、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容