在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/C  網(wǎng)絡安全/ -1無符號輸出

-1無符號輸出

#include <stdio.h>
int main()
{
    short num = -1;
    // 1000 0000 0000 0001(原碼)
    // 1111 1111 1111 1110(反碼)
    // 1111 1111 1111 1111(補碼)
    // 按無符號輸出, 結(jié)果為什么不是 65535
    printf("%u\n", num);
}

問題:結(jié)果為什么不是 65535
謝謝諸位

回答
編輯回答
離魂曲

你得的結(jié)果應該是 4294967295 吧? 32位(not 16位),-1對應的2進制是 32個1,所以結(jié)果是2^32-1

2017年2月4日 13:37
編輯回答
凹凸曼

你需要

printf("%hu\n", num);

格式化輸出中有個 length 位來指示類型的, 具體如下圖:

clipboard.png

2018年9月11日 14:09