二進位制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表示,小數點則隱含表示不佔位。無符號數 表示的是正數,機器中沒有符號未。帶符號數 機器數的最高位表示正負的符號位,其餘為表示數值。純整數 約定小數點的位置在機器數的最低數值位之後。純小數 約定小數的位置在機器數的最...