有符號與無符號討論

2021-07-04 23:58:01 字數 858 閱讀 1068

#includeusing namespace std;

int main()

else

int a2 = -1;

unsigned char b2 = -1;

if(a2 < b2)

else

char a3 = -1;

unsigned int b3 = -1;

if(a3 == b3)

else

unsigned int a4 = 32;

int b4 = -6;

unsigned int c = a + b;

printf("%u",c);

/* 總結:無符號int與有符號int比較大小,轉化為無符號int比較;

int型別與無符號int型別比較大小,非無符號int型別轉換有int型別比較

無符號int型別和其他型別,如unsigned short,signed short,unsigned char,char比較,其他型別轉無符號int型別

非無符號int型別和非int型別如unsigned short,signed short,unsigned char,char比較,一律轉換為int型別

理解有符號數和無符號數

1)自己決定是否需要有正負。

2)使用二進位制中的最高位表示正負

3) 無符號數和有符號數的範圍區別

計算機中的帶符號數用補碼表示的優點:

1)負數的補碼與對應正數的補碼之間的轉換可以用同一種方法——求補運算完成,可以簡化硬體

2)可將減法變為加法,省去減法器

3)無符號數及帶符號數的加法運算可以用同一電路完成。

*/ }

有符號與無符號

最高位為1,表示這個數為負數 最高位為0,表示這個數為正數 include int main 執行結果 正數的補碼為正數本身 負數的補碼為負數的絕對值各位取反後加1 8位整數5的補碼為 0000 0101 8位整數 7的補碼為 1111 1001 16位整數20的補碼為 0000 0000 0001...

無符號與有符號

一,小精度往大精度轉換。1.1c語言中比int小的整型 包括short unsigned short unsigned char和char 在運算中都要轉換成int然後進行運算 unsigned char a unsigned char b a b 10,a和b分別先轉換成int,再計算 1.2同精...

有符號數與無符號數

關於有符號數和無符號數的一些重要知識點,包括它們在記憶體中的儲存方式 互相轉換 越界計算等。大家肯定都知道,對於有符號數,資料型別的最高位用於標示資料的符號,最高位為1表示負數,最高位為0表示正數,那麼今天我們主要就此討論乙個問題 在計算機內部具體是如何表示有符號數呢?在計算機內部是通過補碼的方式來...