C語(yǔ)言進(jìn)制及其轉(zhuǎn)換

###常用的幾種進(jìn)制:任何進(jìn)制計(jì)數(shù)突那,高位都在左邊,右邊為低位富雅,在高位前補(bǔ)0對(duì)于整個(gè)數(shù)的值得大小沒(méi)有影響掸驱,但絕對(duì)不可以在低位后補(bǔ)0,因?yàn)檫@樣會(huì)改變數(shù)的大忻挥印毕贼;

1.最常用的:十進(jìn)制

要點(diǎn) a:在十進(jìn)制中的每一位數(shù)的取值范圍必須在0~9,如果其中某一位數(shù)超過(guò)9蛤奢,則必須用多位數(shù)進(jìn)行表示鬼癣,其中低位和相鄰高位之間的運(yùn)算關(guān)系遵守 “逢十進(jìn)一” ;

要點(diǎn) b:運(yùn)算

例:147.75=1*10^2+4*10^1+7*10^0+7*10^-1+5*10^-2

2.二進(jìn)制:

要點(diǎn) ? ?a:在二進(jìn)制中啤贩,每一位只能在0~1中取待秃,所以二進(jìn)制的基數(shù)2,其中低位和相鄰的高位之間的運(yùn)算法則遵循 ?“逢二進(jìn)一 ”(像十進(jìn)制的逢十進(jìn)一樣)痹屹;

要點(diǎn) b:運(yùn)算

例:101.1=1*2^2+0*2^1+1*2^0+1*2^-1=(5.5)10

要點(diǎn) ?c:二進(jìn)制的前綴為:0b或b開(kāi)頭

3.八進(jìn)制:

要點(diǎn) a:八進(jìn)制的每一位數(shù)只能在0~8中取一個(gè)章郁,并且基數(shù)的基數(shù)是8,其中低位和相鄰的高位之間的運(yùn)算關(guān)系遵循 “逢八進(jìn)一”;

要點(diǎn) b:運(yùn)算

例:(12.4)8=1*8^1+2*8^0+4*8^-1=(10.5)10

要點(diǎn) c :八進(jìn)制的前綴為0暖庄;在八進(jìn)制數(shù)字中的每一位數(shù)字在0~8區(qū)間聊替;例:0157等

4.十六進(jìn)制:

要點(diǎn) a:十六進(jìn)制數(shù)的每一位有16個(gè)不同的數(shù)碼,分別用0~9培廓、A(10)惹悄、B(11)、C(12)肩钠、D(13)泣港、

E(14)、F(15)表示价匠。(A~F大小寫均可)当纱;計(jì)數(shù)的基數(shù)為16,其中低位和相鄰的高位之間的運(yùn)算關(guān)系遵循 “逢十六進(jìn)一”踩窖;

要點(diǎn) b:運(yùn)算

例:(2A.7F)16=2*16^1+10*16^0+7*16^-1+15*16^-2=(42.4960937)10


###進(jìn)制之間的轉(zhuǎn)換:

1.二進(jìn)制與十進(jìn)制:

規(guī)則:以2為底惫东,從低位向高位每一位進(jìn)行2冪運(yùn)算,再和與之對(duì)應(yīng)的位進(jìn)行乘法運(yùn)算毙石,然后求和;

例:01011011(八位的一個(gè)二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù))

0 ?? ????? 1 ? ? ? ?0 ? ? ? ?????1 ? ? ? ?????1 ? ? ????? ?0 ? ? ? ?????1 ? ? ? ? 1

2^7 ? ?2^6 ? ?2^5 ? ? ? 2^4 ????? ????2^3 ? ? ? ?2^2 ? ? ? 2^1 ? ? 2^1?

運(yùn)算時(shí)只需將 ? 0/1 ?下面相對(duì)應(yīng)的以2為底的冪進(jìn)行相乘后求和即可:

0*2^7+1*2^6+0*2^5+1*2^4+1*2^3+0*2^2+1*2^1+1*2^0=91;

例:將十進(jìn)制數(shù)57轉(zhuǎn)換為二進(jìn)制數(shù):

十進(jìn)制轉(zhuǎn)二進(jìn)制就是對(duì)十進(jìn)制數(shù)的一個(gè)以2為除數(shù)的求余過(guò)程:

57 / 2 =28……1

28 / 2 =14……0

14 / ?2=7……0

7 ?/ ?2 =3……1

3 / 2 =1……1

2 ?/ 2 ?=0…… 1

?@注意:在書寫二進(jìn)制的結(jié)果時(shí)颓遏,要倒著寫:即結(jié)果為:111001 ?或 ? 00111001


2.二進(jìn)制轉(zhuǎn)八進(jìn)制:

對(duì)于二進(jìn)制轉(zhuǎn)八進(jìn)制來(lái)講徐矩,把二進(jìn)制從低位向高位進(jìn)行3位二進(jìn)制數(shù)為一個(gè)單位進(jìn)行劃分,也就是說(shuō)

3位二進(jìn)制對(duì)應(yīng)1位八進(jìn)制數(shù)叁幢。

? ? ? ? ? ? ? ? ? ? ? ? 421 ? ? ? ? ? ? ? ? 421 ? ? ? ?421(快捷算法)

例:二進(jìn)制: 010? ??? ??? ??? ? 001 ? ? ? ?101 ? ? ? ?(與下面八進(jìn)制的數(shù)字相對(duì)應(yīng))

????????八進(jìn)制 : ?2 ? ? ? ? ? ? ? ? ? ??1 ? ? ? ? ? ?5

其中????二進(jìn)制的010對(duì)應(yīng)的421中滤灯,因4對(duì)應(yīng)0,1對(duì)應(yīng)0曼玩,所以沒(méi)有值鳞骤,1對(duì)應(yīng)2,所以值為2黍判,所以 以010這3個(gè)數(shù)為一個(gè)單位的數(shù)的值為2豫尽;二進(jìn)制中101對(duì)應(yīng)的421中,4對(duì)應(yīng)1顷帖,2對(duì)應(yīng)0,1對(duì)應(yīng)1美旧,所以 以101為一個(gè)單位的數(shù)的值為4+1=5;所以二進(jìn)制數(shù) ? 010001101????對(duì)應(yīng)的八進(jìn)制數(shù)位 ? ?215贬墩;

八進(jìn)制轉(zhuǎn)二進(jìn)制:

同樣榴嗅,只要逆向思維就可以了:一位八進(jìn)制數(shù)對(duì)應(yīng)3位二進(jìn)制數(shù);

例:八進(jìn)制 ? ? ? ?2 ? ? ? ? ? ? ? ? ? ?1 ? ? ? ? ? ? ? ? ? ? ? ?5

? ? ? ? 二進(jìn)制 ? ?????010 ? ? ? ? ? ? ? 001 ? ? ? ? ? ? ? ? ?101

? ? ? ? ? ? ? ? ? ? ? ? ? ? 421 ? ? ? ? ? ? ? ?421 ? ? ? ? ? ? ? ? ?421?

? ? ? ? ? ? ? ? 0+2+0=2 ? ? ? ? ? ?0+0+1=1 ? ? ? ? ? ? ? ?4+0+1=5

寫結(jié)果時(shí):一般會(huì)寫成10001101陶舞;程序員一般會(huì)將高位數(shù)前的0省略嗽测,值不變


3.二進(jìn)制轉(zhuǎn)十六進(jìn)制

要點(diǎn):對(duì)于二進(jìn)制轉(zhuǎn)十六進(jìn)制來(lái)講,把二進(jìn)制從低位向高位進(jìn)行4位二進(jìn)制數(shù) ?做為一個(gè)單位進(jìn)行劃分肿孵,也就是說(shuō)4位二進(jìn)制對(duì)應(yīng)1位十六進(jìn)制數(shù)唠粥。

例:將 01011110 二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)

? ? ? ? ? ? ? ? ? ?8421 ? ? ? ? ? ? ? ? ? ? ? ? 8421

二進(jìn)制 ? ? ? ?0101 ? ? ? ? ? ? ? ? ? ? ? ?1110

十六進(jìn)制 ? ? ? ? 5 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? E

注釋:同理:5=8*0+4*1+2*0+1*1 ? ? ? ?E(14)=8*1+4*1+2*1+1*0

所以:寫法為 ? ? (01011110)2=(5E)16

十六進(jìn)制轉(zhuǎn)二進(jìn)制:

同樣疏魏,只要逆向思維就可以了:一位十六進(jìn)制數(shù)對(duì)應(yīng)4位二進(jìn)制數(shù)

例: ? ? ? ? ? ?8 ? ? ? ? ? ? ? ? ? ? ? ?F ? ? ? ? ? ? ? ? ? ? ? ?A

????????????????1000 ? ? ? ? ? ? ? ?????1111 ? ? ? ? ? ? ? ? ?1010 ?????

? ? ? ? ? ? ? ? 8421 ? ? ? ? ? ? ? ? ? ?8421 ? ? ? ? ? ? ? ? ? 8421

8=8*1+4*0+2*0+1*0 ? ? ? ?F(15)=8*1+4*1+2*1+1*1 ? ? ? ? ? ?A(10)=8*1+4*0+2*1+1*0

所以:(8FA)16=(100011111010)2


###原碼、反碼厅贪、補(bǔ)碼

1.機(jī)器數(shù):一個(gè)數(shù)在計(jì)算機(jī)中的二進(jìn)制表現(xiàn)形式蠢护;機(jī)器數(shù)是帶符號(hào)的,在計(jì)算機(jī)用一個(gè)數(shù)的最高存放符號(hào)养涮,正數(shù)為0葵硕,負(fù)數(shù)為1;如:十進(jìn)制中的數(shù)+3贯吓,計(jì)算機(jī)字長(zhǎng)尾8位懈凹,轉(zhuǎn)換成二進(jìn)制數(shù)就是00000011.如果是-3,那就是10000011悄谐;那么介评,這里的00000011和10000011就是機(jī)器數(shù)。

2.真值:因?yàn)榈谝晃皇欠?hào)位爬舰,所以機(jī)器數(shù)的形式值就不等于真正的數(shù)值们陆。

3.原碼:原碼就是符號(hào)位加上真值的絕對(duì)值。

例:+1(原碼)=0000 0001

????????-1(原碼)=1000 ?0001

從中可以看出情屹,對(duì)于二進(jìn)制來(lái)說(shuō)坪仇,最高位就是符號(hào)位,1就是代表的負(fù)數(shù)垃你,0就代表正數(shù)椅文,所以一個(gè)8位的二進(jìn)制數(shù)它能表達(dá)的取值范圍應(yīng)該是【11111111,01111111】;即【-127,127】但char類型占一個(gè)字節(jié)惜颇,所以取值范圍為【-128,127】

4.反碼:正數(shù)的原碼皆刺,反碼是一樣的;負(fù)數(shù)的反碼就是符號(hào)位不變凌摄,其他位在原碼的基礎(chǔ)上取反羡蛾,即0變?yōu)?,1變?yōu)?.

原碼 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?反碼

+1 ? ?+0000 0001 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0000 0001

-1 ? ? 1000 0001 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1111 ? ?1110

+0 ? ? 0000 0000 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0000 0000

-0 ? ? ? 1000 0000 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1111 1111


5.補(bǔ)碼:

正數(shù)的原碼、反碼望伦、補(bǔ)碼就是其本身林说;負(fù)數(shù)的補(bǔ)碼是在其原碼的基礎(chǔ)上,符號(hào)位不變屯伞,其余各取反腿箩,最后+1(即 在反碼的基礎(chǔ)上+1)


例 ?: ? ? ? ? 原碼 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?反碼 ? ? ? ? ? ? ? ? ? ? ? ? ? ?補(bǔ)碼

+1 ? ? ? ?0000 ?0001 ? ? ? ? ? ? ? ? ? ? ? ?0000 ? ?0001 ? ? ? ? ? ?????0000 ? ?0001

-1 ? ? ? ?1000 ? ?0001 ? ? ? ? ? ? ? ? ? ? ? 1111 ? ?1110 ? ? ? ? ? ? ? ????1111 ? 1111

+0 ? ? ? ?0000 ? ?0000 ? ? ? ? ? ? ? ? ? ? ? ?0000 ? ? ? 0000 ? ? ? ? ? ?0000 0000

-0 ? ? ? ? ?1000 ? ?0000 ? ? ? ? ? ? ? ? ? ? ? 1111 ? ?11111 ? ? ? ? ? ? ? ?10000 ? ?0000

在最后一行中,-0的補(bǔ)碼得出來(lái)是一個(gè)9位的二進(jìn)制數(shù)劣摇,由于我們測(cè)試的是8位珠移,所以,應(yīng)該把最

最高位舍去,因?yàn)閿?shù)據(jù)在存儲(chǔ)的時(shí)候是由高到低進(jìn)行存儲(chǔ)钧惧,所以-0的補(bǔ)碼應(yīng)該是0000 0000


注意:在計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)時(shí)暇韧,計(jì)算機(jī)是采用二進(jìn)制補(bǔ)碼的形式 進(jìn)行存儲(chǔ)

#include <stdio.h>

int main(){

int ? ? x=1;//定義一個(gè)Int類型的變量名為x的變量

int ? ? ? y=~x;//~這個(gè)是取反符號(hào)

printf("%d\n",y);

return 0;

}

輸出結(jié)果為:-2

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市浓瞪,隨后出現(xiàn)的幾起案子懈玻,更是在濱河造成了極大的恐慌,老刑警劉巖乾颁,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涂乌,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡英岭,警方通過(guò)查閱死者的電腦和手機(jī)湾盒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)诅妹,“玉大人罚勾,你說(shuō)我怎么就攤上這事】越疲” “怎么了尖殃?”我有些...
    開(kāi)封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)划煮。 經(jīng)常有香客問(wèn)我分衫,道長(zhǎng),這世上最難降的妖魔是什么般此? 我笑而不...
    開(kāi)封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮牵现,結(jié)果婚禮上铐懊,老公的妹妹穿的比我還像新娘。我一直安慰自己瞎疼,他們只是感情好科乎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著贼急,像睡著了一般茅茂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上太抓,一...
    開(kāi)封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天空闲,我揣著相機(jī)與錄音,去河邊找鬼走敌。 笑死碴倾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播跌榔,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼异雁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了僧须?” 一聲冷哼從身側(cè)響起纲刀,我...
    開(kāi)封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎担平,沒(méi)想到半個(gè)月后示绊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡驱闷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年耻台,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片空另。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盆耽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扼菠,到底是詐尸還是另有隱情摄杂,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布循榆,位于F島的核電站析恢,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏秧饮。R本人自食惡果不足惜映挂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望盗尸。 院中可真熱鬧柑船,春花似錦、人聲如沸泼各。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)扣蜻。三九已至逆巍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間莽使,已是汗流浹背锐极。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芳肌,地道東北人溪烤。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓味咳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親檬嘀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子槽驶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容