問下大佬們為啥int里面的-1會輸出65535;但是在short int 里會輸出-1呢

uj5u.com熱心網友回復:
int 有符號位unsigned int 無符號數
uj5u.com熱心網友回復:
但是int(-1) 輸出是62235
uj5u.com熱心網友回復:
求大佬幫忙分析一下那兩個圖
uj5u.com熱心網友回復:
你首先看看負數在記憶體中是二進制如何表示的,-1=62235這就是扯蛋,你之所以有可能會出現這種狀況,可能是因為你定義的是short int,你先得弄明白各型別記憶體分存及長度。uj5u.com熱心網友回復:
嗯額,蟹蟹蟹蟹蟹蟹
uj5u.com熱心網友回復:
圖一中 m=-1回傳值是(unsigned short)65535,所以在型別提升到int時值就是65535。圖二short int不就是short嗎,在同一型別unsigned與signed賦值時,是直接復制short這兩個位元組的記憶體,unsigned short的65535與short的-1記憶體是相同的,都是ffff,只是讀時看沒看符號位的區別導致值為-1號65535兩種。uj5u.com熱心網友回復:
明白了蟹蟹蟹蟹??
uj5u.com熱心網友回復:
越界了吧??轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/111552.html
標籤:新手樂園
上一篇:回圈鏈表之約瑟夫環問題
下一篇:用C++怎么打?跪求
