C語言 有符號 無符號

2022-05-17 06:05:17 字數 1007 閱讀 5455

#include int

main()

注:資料儲存時將-0對應的區間值設定為最小值 -2^7

1、說明

資料儲存在計算機中不存在符號位

無符號數最高位不是符號位,而就是數的一部分,無符號數不可能是負數。

2、詳解當我們寫程式要處理乙個不可能出現負值的時候,一般用無符號數,這樣可以增大數的表達最大值。

3、表範圍

資料型別

占用空間

取值範圍

short

2位元組-32768 到 32767 (-215 ~ 215-1)

int4位元組

-2147483648 到 2147483647 (-231 ~ 231-1)

long

4位元組-2147483648 到 2147483647 (-231 ~ 231-1)

unsigned short

2位元組0 到 65535 (0 ~ 216-1)

unsigned int

4位元組0 到 4294967295 (0 ~ 232-1)

unsigned long

4位元組0 到 4294967295 (0 ~ 232-1)

當超過乙個資料型別能夠存放最大的範圍時,數值會溢位。

有符號位最高位溢位的區別:符號位溢位會導致數的正負發生改變,但最高位的溢位會導致最高位丟失。

#include int

main()

有符號與無符號

最高位為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同精...

2 有符號無符號

計算機中的符號位 include intmain int argc,char const ar 有符號數的表示法 8位整數 5 的補碼為 0000 0101 8位整數 7 的補碼為 1111 1001 16位整數的 20 的補碼為 0000 0000 0001 0100 16位整數 13 的補碼為 ...