C 數的表示

2022-07-05 11:36:17 字數 1512 閱讀 4538

二進位制b

八進位制o

十進位制d

十六進製制h / 0x十六進製制

十進位制數轉換成r進製數:整數部分除基取餘,上右下左;小數部分乘基取整,上左下右。

浮點數的階用一種稱為移碼的編碼表示方法,方便對階。階的編碼稱為階碼(階用移碼表示的01序列)

[e]移=偏置常數+e,偏置常數為2n-1或2n-1-1。

int→float:不溢位、可能捨去(int的有效位數比float多,float24位有效數字最多精確表示7位10進賬數字)

int→double、float→double:保留精確值

double→float:可能溢位、可能捨入

float→int:資料向0方向截斷

double→int:資料向0方向截斷、大的浮點數轉換為整數時發生錯誤

c語言規定,short和int至少16位,long至少32位,且必須滿足short≤int≤long,具體由編譯器決定

char:8位

short:16位

int:32位

long:ia32中32位、x86-64中64位

long long:iso c99引入,64位。

long double:iso c99引入,80位。但在ia32中佔96位(12b對齊)、在x86-64中佔128位(16b對齊)

windows中不同型別按資料長度對齊,char型無需對齊

linux中short位址是2的倍數,int、float、指標、double位址是4的倍數(double可能要訪問兩次)

struct,編譯器使其首位址4b對齊

ascii碼(美國標準資訊交換碼):b7=0,一般放奇偶校驗碼

字元0-9:011+8421碼

英文本母:b5=0為大寫、b5=1為小寫

100 0001~101 1010表示a~z

110 0001~111 1010 表示a~z

外碼(輸入碼):西文鍵盤某個按鍵

14位區位碼:7位區號(行號)+7位位號(列號)

區號位號各加32(20h)得到14位國標碼(國際交換碼)

表示漢字的兩個位元組最高位b7=1,這種16位雙位元組漢字編碼為機內碼(漢字內碼),當然也可以有不同的編碼方案

c語言的基本運算:

①算術運算:+、-、×、/ 、%

②按位運算:|、&、~、∧

③邏輯運算:||、&&、!

④移位運算:無符號數邏輯移位(左移時高位移出低位補0,移出1則發生溢位;右移時低位移出高位補0)

帶符號整數算術移位(左移時如果移出的高位不同於移位後的符號位則發生溢位;右移時低位移出高位補符號)

⑤位擴充套件運算:無符號數0擴充套件(如unsigned short擴充套件為unsigned)、符號擴充套件(如short擴充套件為int)

⑥位截斷運算

數的定點表示和數的浮點表示

數的定點表示 小數點按照約定的形式給出。在計算機裡面沒有專門的硬體用來表示小數點,所謂的小數點都是計算機體系設計人員按照約點的形式給出的。按照約定的方式,可以將計算機分為兩種 一種是小數點在數符後面數值前面,一種是數值後面。如圖 前面這種稱為小數定點機,後面的稱為整數定點機。下面是這兩種形式計算機的...

2 1 C語言中的進製數的表示

在c語言種,乙個數字預設就是十進位制的,表示乙個十進位制數字不需要任何特殊的格式。但是,表示乙個二進位制 八進位制或者十六進製制數字就不一樣了,為了和十進位制數字區分開來,必須採用某種特殊的寫法,具體來說,就是在數字前面加上特定的字元,也就是加字首。1 二進位制 二進位制由 0 和 1 兩個數字組成...

資料表示 機器數

各種數值在計算機中的表示形式稱為機器數。特點是採用二進位制計數制,數的符號使用0和 1表示,小數點則隱含表示不佔位。無符號數 表示的是正數,機器中沒有符號未。帶符號數 機器數的最高位表示正負的符號位,其餘為表示數值。純整數 約定小數點的位置在機器數的最低數值位之後。純小數 約定小數的位置在機器數的最...