1首先了解 低字節(jié)位 和高字節(jié)位 看圖
十年的石龍網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整石龍建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)建站從事“石龍網(wǎng)站設(shè)計”,“石龍網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
2字節(jié)在內(nèi)存的排列方式
//int num = 010; //0開頭代表 8禁止 //("%d",num); //所以打印的是8 int num = 0x12345678; //將占 2 32位 printf("%p", &num); /* 要特別 注意 低位 在低字節(jié) 高位 高字節(jié) 0x0063FAC0 78 x 0x0063FAC1 56 V 0x0063FAC2 34 4 0x0063FAC3 12 . */ 看圖2
3 printf 不會進行自動轉(zhuǎn)換
void main()
{
printf("%d", 10.3);
printf("\n%f", 10);
getchar();
}
請看圖3
4 一定要注意數(shù)據(jù)會溢出數(shù)據(jù)會溢出
請看圖4
unsigned short num = 65535;
printf("我有現(xiàn)金:%d元",num);
unsigned short num = 65535+1;
printf("我有現(xiàn)金:%d元",num);
上面這樣數(shù)據(jù)就會溢出
5 原理
頭文件#include<limits.h> printf("%d", INT_MAX); printf("\n%d", INT_MIN); printf("\n%u", UINT_MAX); //有負(fù)號的情況下 0代表正式 1代表負(fù)數(shù) //1111 1111 1111 1111 1111 1111 1111 1111 //0111 1111 1111 1111 1111 1111 1111 1111
6源碼反碼補碼
//1的源碼和-1的源碼
//0000 0000 0000 0000 0000 0000 0000 0001
//1000 0000 0000 0000 0000 0000 0000 0001
//-1符號為是1
源碼反碼補碼過程
//源碼1000 0000 0000 0000 0000 0000 0000 0001
//-1反碼1 符號位不變 所有0變1 1變0
//111 1111 1111 1111 1111 1111 1111 1110
//-1補碼 符號位不變 所有0變1 1變0 在補1(在反碼基礎(chǔ)是+1)
//111 1111 1111 1111 1111 1111 1111 1111
unsigned int num = -1;
printf("%d %u", num, num);
雖然補碼后二進制相同 但是他們有負(fù)號的符號位不算 所以數(shù)據(jù)不相同
7為什么要用補碼 非常重要?。?!
0000 0001 1 (1代表十進制)
1000 0010 2 (1000 0010 是2的源碼)
如果我們用2的補碼
1000 0010 源碼
1111 1101 反碼(所有位取反 負(fù)號不變)
1111 1110 補碼(反碼基礎(chǔ) +1)
這時候在相加
0000 0001 1
1111 1110 2的補碼
1111 1111 是不是就是-1
-1 源碼
1000 0001
1111 1110 反碼
1111 1111 補碼
用補碼的原因就是因為可以大大節(jié)約計算機的資源
8 數(shù)據(jù)的取值范圍
新聞名稱:c/c++原碼反碼補碼原理以及進制轉(zhuǎn)換
網(wǎng)站地址:http://jinyejixie.com/article16/gdpigg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、企業(yè)網(wǎng)站制作、云服務(wù)器、定制開發(fā)、App設(shè)計、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)