劇多
首頁
資訊
體育
娛樂
汽車
投資
財經
軍事
科技
數碼
科學
遊戲
歷史
健康
政治
影視
旅遊
育兒
美食
時尚
房產
農業
社會
文化
教育
技術
美文
情感
故事
家居
職場
自然
闢謠
心理
攝影
漫畫
生活
其它
Club
Tips
熱門話題
搜尋
註冊
登入
首頁
>
Club
>
2021-02-11 21:08
unsigned int b=65535;printf(“%d”,b);的結果為什麼是-1啊?
7
回覆列表
1 # 使用者2562339713923
語言有符號數與無符號數之間的轉換:無符號數:不存在正負之分,所有位都用來表示數的本身。
有符號數:最高位用來表示數的正負,最高位為1則表示負數,最高位為0則表示正數。1. 無符號數轉換為有符號數:看無符號數的最高位是否為1,如果不為1(即為0),則有符號數就直接等於無符號數; 2.如果無符號數的最高位為1,則將無符號數取補碼,得到的數就是有符號數。3..有符號數轉換為無符號數 :看有符號數的最高位是否為1,如果不為1(即為0),則無符號數就直接等於有符號數; 4.如果有符號數的最高位為1,則將有符號數取補碼,得到的數就是無符號數。在無符號整型中表示65535,其二進位制數是1111 1111 1111 1111. 而轉化為有符號的話,1111 1111 1111 1111表示的數是多少呢。我們知道,在有符號的時候,負數的表示是原碼取反加1.那麼我們來反推1111 1111 1111 1111等於多少。首先因為最高為是1,所以1111 1111 1111 1111表示的是負數,那麼1111 1111 1111 1111-1= 1111 1111 1111 1110,再取反,得到1000 0000 0000 0001=-1(符號位不變其他位置按位取反)所以1111 1111 1111 1111 是-1.
發表回復
相關內容
#include
#include
int main() { int a[5][5]; int i,j; for(i=0;i<5;i++) { printf("?
∧
中秋節和大豐收的關聯?
∨
為什麼年輕人都習慣熬夜?
熱門排行
大林寺桃花的解釋?
血鸚鵡管家是誰扮演的?
冰箱空開選16a還是20a?
變頻器FWD燈閃是什麼故障?
手機膜為什麼會翹起來?
大通g10剎車硬是怎麼回事?
創造與魔法星月鰩必刷位置?
鋼構驗收的內容有哪些?
廚房推拉門左右拉反了怎麼弄回來?
mini車型區別?
語言有符號數與無符號數之間的轉換:無符號數:不存在正負之分,所有位都用來表示數的本身。
有符號數:最高位用來表示數的正負,最高位為1則表示負數,最高位為0則表示正數。1. 無符號數轉換為有符號數:看無符號數的最高位是否為1,如果不為1(即為0),則有符號數就直接等於無符號數; 2.如果無符號數的最高位為1,則將無符號數取補碼,得到的數就是有符號數。3..有符號數轉換為無符號數 :看有符號數的最高位是否為1,如果不為1(即為0),則無符號數就直接等於有符號數; 4.如果有符號數的最高位為1,則將有符號數取補碼,得到的數就是無符號數。在無符號整型中表示65535,其二進位制數是1111 1111 1111 1111. 而轉化為有符號的話,1111 1111 1111 1111表示的數是多少呢。我們知道,在有符號的時候,負數的表示是原碼取反加1.那麼我們來反推1111 1111 1111 1111等於多少。首先因為最高為是1,所以1111 1111 1111 1111表示的是負數,那麼1111 1111 1111 1111-1= 1111 1111 1111 1110,再取反,得到1000 0000 0000 0001=-1(符號位不變其他位置按位取反)所以1111 1111 1111 1111 是-1.