C語言筆記 第二課 有符號與無符號 狄泰學院

2021-08-25 10:57:15 字數 1415 閱讀 7421

資料型別的最高位用於表示資料的符號

最高位為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語言編譯包的乙個標準...