原碼反碼補(bǔ)碼詳解
成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站與策劃設(shè)計(jì),陽(yáng)春網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:陽(yáng)春等地區(qū)。陽(yáng)春做網(wǎng)站價(jià)格咨詢:18982081108整型提升詳解
菜單//輸出什么?
#includeint main()
{char a= -1;
signed char b=-1;
unsigned char c=-1;
printf("a=%d,b=%d,c=%d",a,b,c);
return 0;
}
例題2://輸出什么
#includeint main()
{char a = -128;
printf("%u\n",a);
return 0;
}
例題3:#incluudeintmain()
{int i= -20;
unsigned int j = 10;
printf("%d\n", i+j);
}
例1 解析:#includeint main()
{char a = -1;//賦值運(yùn)算是從右往左算,所以先寫出-1的原碼,在轉(zhuǎn)換成補(bǔ)碼,在發(fā)生截?cái)啵罱K才存儲(chǔ)到a當(dāng)中。
//10000000000000000000000000000001 -1的原碼
//11111111111111111111111111111110 -1的反碼
//11111111111111111111111111111111 -1的補(bǔ)碼
//11111111 最終char是一個(gè)字節(jié),只能存儲(chǔ)8個(gè)比特位,所以要發(fā)生截?cái)?最終a的二進(jìn)制如前面
signed char b = -1;
//11111111 b的最終二進(jìn)制
unsigned char c = -1;
//0000000000000000000000000000001
//1111111111111111111111111111110 注意:無(wú)符號(hào)數(shù)按位取反時(shí),直接0變 1,1變0.即可,因?yàn)樗形欢际菙?shù)據(jù)位
//1111111111111111111111111111111
//11111111 c的最終二進(jìn)制
//注意,a,b,c雖然最終的二進(jìn)制是一樣的,但最高位的1意義不一樣,a,b的最高位為符號(hào)位,c是數(shù)據(jù)位
printf("a=%d,b=%d,c=%d", a, b, c);//%d是以有符號(hào)的整型的原碼打?。ㄋ鼤?huì)看你整型提升后的最高位,并把它當(dāng)做符號(hào)位,并且要進(jìn)行原碼反碼補(bǔ)碼的轉(zhuǎn)換。),上述的所有char類型全部要發(fā)生整型提升
//11111111 a的二進(jìn)制
//11111111111111111111111111111111 a整型提升后的補(bǔ)碼
//11111111111111111111111111111110 a的反碼
//10000000000000000000000000000001 a的原碼
//b也是這樣做
//c的二進(jìn)制 11111111
//00000000000000000000000011111111 c整型提升后的補(bǔ)碼
//c整型提升后最高位為0,是正數(shù),原碼反碼補(bǔ)碼相同。
return 0;
}// 運(yùn)行結(jié)果a=-1,b=-1,c=255
例2解析:#includeint main()
{char a = -128;
//10000000000000000000000010000000 -128的原碼
//11111111111111111111111101111111 -128的反碼
//11111111111111111111111110000000 -128的補(bǔ)碼
//10000000 a的二進(jìn)制
printf("%u\n",a);//%u是打印無(wú)符號(hào)十進(jìn)制數(shù)
//1111111111111111111111111000000 整型提升后a的二進(jìn)制序列,(補(bǔ)碼)
//以%u形式打印,它會(huì)認(rèn)為補(bǔ)碼最高位的1為數(shù)據(jù)位(直接當(dāng)正數(shù)處理),所以a是正數(shù),原碼反碼補(bǔ)碼相同
return 0;
}//運(yùn)行結(jié)果a=4294967168
例3解析:#includeint main()
{int i = -20;
//10000000000000000000000000010100 -20的原碼
//11111111111111111111111111101011 反碼
//11111111111111111111111111101100 補(bǔ)碼
unsigned int j = 10;
//00000000000000000000000000001010 正數(shù)的原碼反碼補(bǔ)碼相同
printf("%d\n", i + j);
//11111111111111111111111111101100 i的補(bǔ)碼
//00000000000000000000000000001010 j的補(bǔ)碼
//11111111111111111111111111110110 i+j的補(bǔ)碼
//11111111111111111111111111110101 i+j的反碼
//10000000000000000000000000001010 i+j的原碼
//在內(nèi)存中用補(bǔ)碼計(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)查看詳情吧
分享名稱:c語(yǔ)言數(shù)據(jù)存儲(chǔ)加深練習(xí)-創(chuàng)新互聯(lián)
標(biāo)題URL:http://jinyejixie.com/article34/jghse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站改版、微信小程序、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站營(yíng)銷、電子商務(wù)
聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容