※ 引述《liptonbin (wind)》之銘言:
: 請問
: 我的code如下
: main()
: {
: int a=-3
: printf("a=%x",a);
: }
: 請問為何輸出是fffffffd
: 謝謝啦
這是因為電腦裡負數表示法的關係,請查維基百科:二補數
// http://zh.wikipedia.org/wiki/%E4%BA%8C%E8%A3%9C%E6%95%B8
3 用二進位表示是 00000000 00000000 00000000 00000011
用二補數表示 3 的負數 (即 -3) 則為 11111111 11111111 11111111 11111101
// 二補數:全部 bit 反轉 (1變0, 0變1) 後,加 1
再轉換為16進制就是 FFFFFFFD 了,體會一下吧!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.227.84.3