以char為例
最小值為:signed char p = 0x80;
最大值為:signed char q = 0x7f;
p,最高為1時表示為負數,絕對值為2^7次方
0x80+0x7f=0xff=-1
面試題int為4位元組
unsigned int p=6;
signed int q=-20;
p+q的十六進製制為多少
p=0x00000006
十進位制運算:q=-1-19
十六進製制運算:q=0xffffffff-0x13=0xffffffec
p+q = 0x00000006+0xffffffec=0xfffffff2
表示為有符號數:0xffffffff-0xfffffff2=13
0xfffffff2 = 0xffffffff-13 = -14
表示為無符號數:自己算
有符號型別與無符號型別之間的轉換
void foo void unsigned int a 6 int b 20 a b 6 puts 6 puts 6 printf b x n b b 0xffffffec 這個問題測試你是否懂得c語言中的整數自動轉換原則 這無符號整型問題的答案是輸出是 6 原因是當表示式中存在有符號型別和無符號...
有符號與無符號
最高位為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同精...