資料型別的最高位用於表示資料的符號
最高位為1,表明這個數為負數
最高位為0,表示這個數為整數
int sign = 0;
char i = -5;
short j = 5;
int k = 1;
sign = (i & 0x80); // sign unequal to 0
sign = (i & 0x80); // sign equal to 0
sign = (i & 0x80); // sign unequal to 0
有符號數的表示法
在計算機內部用補碼表示有符號數
正數的補碼為整數本身
負數的補碼為負數的絕對值各位取反後加1
8位整數5的補碼為: 0000 0101
8位整數-7的補碼為: 1111 1001
16位整數20的補碼為: 0000 0000 0000 0000
16位整數-13的補碼為: 1111 1111 1111 0011
舉例:-7
7 ==>111 ==>0000 0111 ==> 1111 1000 ==>1111 1001
無符號的表示法
在計算機內部用原碼表示無符號數
無符號數預設為正數
無符號數沒有符號位
對於固定長度的無符號數
max_value + 1 —-> min_value
min_value - 1 —-> max_value
signed和unsigned
c語言中變數預設為有符號的型別
unsigned關鍵字宣告變數為無符號型別
include .h>
int main()
c語言中只有整數型別能夠宣告unsigned變數。
2-1 有符號數的符號位
#include
int main()
2-2 當無符號數遇見有符號數
#include
int main()
else
return0;}
當有符號數與無符號數共存是,則有符號數視為無符號數
2-3 錯誤的使用unsigned
#include
int main()
return0;}
無符號數最小值為0
小結:
有符號數用補碼表示
正數的符號位為0
負數的符號位為1
無符號數用原碼表示
無符號數沒有符號位
無符號數隻用於表示正數
unsigned只能修飾整數型別的變數
當無符號數與有符號數混合計算時,會將有符號數轉換為無符號數後再進行計算,結果為無符號數
C語言 有符號 無符號
include int main 注 資料儲存時將 0對應的區間值設定為最小值 2 7 1 說明 資料儲存在計算機中不存在符號位 無符號數最高位不是符號位,而就是數的一部分,無符號數不可能是負數。2 詳解當我們寫程式要處理乙個不可能出現負值的時候,一般用無符號數,這樣可以增大數的表達最大值。3 表範...
第二課 C簡介
第二課 c簡介 c語言是一種通用的高階語言,最初是由丹尼斯 里奇在貝爾實驗室為開發 unix 作業系統而設計的。c語言最開始是於 1972 年在dec pdp 11 計算機上被首次實現。在1978 年,布萊恩 柯林漢 brian kernighan 和丹尼斯 里奇 dennis ritchie 製作...
C 語言學習第二課
1 2 3 4 5 6 7 8 9 10 11 include intmain 其除錯及執行的結果如下 下面我對其中涉及的詳細介紹下 程式細節介紹 1 2 3 4 5 6 7 8 9 10 include該行告訴編譯器包含檔案stdio.h中的全部資訊。檔案stdio.h是所有c語言編譯包的乙個標準...