日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言进制转换时自动扩展位?(原码、反码、补码)(打印%o、%x时会自动扩展到32位【负数先得到其十进制真实数值,再根据其真实数值得到八进制、十进制补码】)

發布時間:2025/3/20 编程问答 17 豆豆

文章目錄

    • 解析(char a = 0x81)
    • 注意
    • 解析(int b = 0x81)
    • 解析(char c = -12)



懵逼😵

解析(char a = 0x81)

(打印8進制補碼的時候,是通過a的十六進制補碼,換算成十進制原碼【-127】后,再倒推回去計算8進制補碼,而不是通過十六進制補碼直接得到的!)

char a 的十六進制補碼:8 1 1000 0001(最高位是1,說明是負數) 八進制補碼: 1111 1111 1111 1111 1111 1111 1000 0001(八進制補碼)--> 11 111 111 111 111 111 111 111 110 000 00137777777601) 反碼: 1000 00001111 1111 1111 1111 1111 1111 1000 0000 倒回去↑) 原碼: 1111 11111000 0000 0000 0000 0000 0000 0111 1111 倒回去↑) 原碼十進制表示: -127 (倒回去↑)

注意

正數的原碼補碼反碼相同

打印%o,八進制,估計也是以4個字節,32位大小打印

解析(int b = 0x81)

int b 的十六進制補碼:8 1 0000 0000 0000 0000 0000 0000 1000 0001八進制補碼(由十六進制補碼直接轉換): 0000 0000 0000 0000 0000 0000 1000 0001 00 000 000 000 000 000 000 000 010 000 0012 0 1十進制原碼(因為最高位為0,是正數,所以原碼等于補碼): 0000 0000 0000 0000 0000 0000 1000 0001 129

解析(char c = -12)

十進制表示: -12 原碼: 1000 0000 0000 0000 0000 0000 0000 1100 反碼: 1111 1111 1111 1111 1111 1111 1111 0011 補碼: 1111 1111 1111 1111 1111 1111 1111 010011 111 111 111 111 111 111 111 111 110 100 八進制表示: 3 7 7 7 7 7 7 7 7 6 4 十六進制表示: F F F F F F F 4

總結

以上是生活随笔為你收集整理的C语言进制转换时自动扩展位?(原码、反码、补码)(打印%o、%x时会自动扩展到32位【负数先得到其十进制真实数值,再根据其真实数值得到八进制、十进制补码】)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。