在聊二進(jìn)制的位數(shù)截取之前呢我們需要先了解兩個(gè)知識(shí)點(diǎn),一是數(shù)字類型的不同所占的存儲(chǔ)空間是不同的,進(jìn)而導(dǎo)致每個(gè)數(shù)據(jù)類型所能存儲(chǔ)的數(shù)據(jù)范圍不同。二是編譯過程中計(jì)算機(jī)原碼,反碼,補(bǔ)碼的轉(zhuǎn)換。
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括寧夏網(wǎng)站建設(shè)、寧夏網(wǎng)站制作、寧夏網(wǎng)頁制作以及寧夏網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,寧夏網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到寧夏省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!一、常見數(shù)據(jù)類型的存儲(chǔ)空間 1.整數(shù)類型1.1char:占用的內(nèi)存空間:1字節(jié) 8bit;
能存儲(chǔ)的數(shù)據(jù)范圍:無符號(hào):[0, 2^8-1],有符號(hào):[-2^7, 2^7-1]
1.2short:占用的內(nèi)存空間:2字節(jié) 16bit;
能存儲(chǔ)的數(shù)據(jù)范圍:無符號(hào):[0, 2^16-1],有符號(hào):[-2^15, 2^15-1]
1.3.int:占用的內(nèi)存空間:4字節(jié) 32bit
能存儲(chǔ)的數(shù)據(jù)范圍:無符號(hào):[0, 2^32-1],有符號(hào):[-2^31, 2^31-1]
1.4.long:占用的內(nèi)存空間:8字節(jié) 64bit
能存儲(chǔ)的數(shù)據(jù)范圍:無符號(hào):[0, 2^64-1],有符號(hào):[-2^63, 2^63-1]
2.浮點(diǎn)類型3.空類型浮點(diǎn)型存儲(chǔ)涉及到小數(shù)的二進(jìn)制,取得大部分都是近似值,本次不討論。
二、原碼、反碼、補(bǔ)碼轉(zhuǎn)換的問題。 1.轉(zhuǎn)化的規(guī)則void 叫做空類型,不占用內(nèi)存空間,一般搭配指針使用,后續(xù)再說指針。
無符號(hào)數(shù):原碼、反碼、補(bǔ)碼 都是一樣的
有符號(hào)的正數(shù):原碼、反碼、補(bǔ)碼 都是一樣的
有符號(hào)的負(fù)數(shù):反碼==原碼中符號(hào)位不變,其他位按位取反 0變成1 1變成0
2.存儲(chǔ)時(shí)的不同三、實(shí)例演示存儲(chǔ)時(shí)看數(shù)據(jù)(正負(fù)),取出時(shí)看類型(有無符號(hào))
了解完這些問題,咱們通過一些例子去驗(yàn)證一下。
1.正常情況int main(int argc, const char *argv[])
{
unsigned char a = 10;
//存儲(chǔ)時(shí)
//原碼: 0000 1010
//反碼: 0000 1010
//補(bǔ)碼: 0000 1010
//取出時(shí)
//補(bǔ)碼: 0000 1010
//反碼: 0000 1010
//原碼: 0000 1010 -->10
printf("a = %d\n", a);//10
signed char b = -10;
//存儲(chǔ)時(shí)
//原碼: 1000 1010
//反碼: 1111 0101
//補(bǔ)碼: 1111 0110
//取出時(shí)
//補(bǔ)碼: 1111 0110
//反碼: 1111 0101
//原碼: 1000 1010 -->-10
printf("b = %d\n", b);//-10
2.錯(cuò)誤情況signed char c = 129;
//存儲(chǔ)時(shí)
//原碼: 1000 0001
//反碼: 1000 0001
//補(bǔ)碼: 1000 0001
//取出時(shí)
//補(bǔ)碼: 1000 0001
//反碼: 1000 0000
//原碼: 1111 1111 -->-127
printf("c = %d\n", c);// -127
unsigned char d = -1;
//存儲(chǔ)時(shí)
//原碼: 1000 0001
//反碼: 1111 1110
//補(bǔ)碼: 1111 1111
//取出時(shí)
//補(bǔ)碼: 1111 1111
//反碼: 1111 1111
//原碼: 1111 1111 -->255
printf("d = %d\n", d);//255
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧