亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

C語言各種類型所占字節(jié)數(shù) c語言中一個數(shù)字占幾個字節(jié)


C語言各種類型所占字節(jié)數(shù) c語言中一個數(shù)字占幾個字節(jié)

文章插圖
char和int類型都是有符號數(shù)類型 , char類型的變量占據(jù)1個字節(jié)的容量 , int類型的變量占據(jù)4個字節(jié)的容量 。那么 , 把char類型變量賦給int類型變量 , 會有什么問題產(chǎn)生?
我們會很直觀地認為 , 把1個字節(jié)大小的數(shù)據(jù) , 放入4個字節(jié)大小的容量 , 沒有任何問題?。∥覀冏鋈缦碌囊粋€測試例子:
程序運行結(jié)果如下:
可以看到b的結(jié)果也是-1 , 這是因為 , 把char類型變量賦值給放入int類型變量時 , 是把char類型變量的數(shù)據(jù)放入int類型變量的第字節(jié) , 剩下的高位字節(jié)使用char類型變量的符號位擴展填充 。所以 , a變量的二進制是 1111 1111 , 其中符號位是1 , 那么 , 放入int類型變量的時候 , 把a變量的 1111 1111 數(shù)據(jù)放入int類型變量的低字節(jié) , 高字節(jié)使用符號位1擴展填充 , 最終是1111 1111 1111 1111 1111 1111 1111 1111二進制數(shù)值 , 表示為-1這個數(shù)值 。
下面來講解一個應(yīng)用實例 , 在網(wǎng)絡(luò)通信或者串口通信的過程中 , 傳輸?shù)臄?shù)據(jù)是一個一個字節(jié)的數(shù)據(jù)流 。例如 , 一個字節(jié)的數(shù)據(jù)是128(十六進制是0x80) , 對應(yīng)是二進制是1000 0000 , 那么 , 就應(yīng)該把這個數(shù)據(jù)當(dāng)作“無符號”數(shù)看待 , 這樣 , 一個字節(jié)中的8位數(shù)據(jù)才完全做為數(shù)值位 , 才表示128這個數(shù)值 。
如果把128這個數(shù)值作為“有符號”數(shù)看待 , 那么 , 最高位作為符號位 , 剩下的7位作為數(shù)值位 , 那么 , 128這個數(shù)值當(dāng)作有符號數(shù)看待時 , 其數(shù)值就發(fā)生了改變 。測試例子如下:
程序運行結(jié)果如下:
可以看到 , char類型是“有符號數(shù)”類型 , 那么 , 存儲在char類型變量x中的數(shù)據(jù)當(dāng)作“有符號數(shù)”看待 。所以 , 128數(shù)值存儲在1個字節(jié)中的二進制是1000 0000 , 當(dāng)以十六進制輸出%x的時候 , 默認輸出4個字節(jié)的寬度 , 所以 , 1000 0000中的符號位向高位擴展 , 擴展到4個字節(jié)的空間 。所以 , 得到4個字節(jié)中的二進制數(shù)據(jù)是:1111 1111 1111 1111 1111 1111 1000 000 , 表示是十六進制就是0xffffff80;
在第二行輸出中 , 對變量x的輸出 , 強制轉(zhuǎn)換為無符號類型 , 那么 , 就把變量x當(dāng)作無符號數(shù)看待 , 就輸出其數(shù)值0x80 。


    以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!

    「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: