Index:
1.1計算機系統及內存編址
1.2數和字符的編碼表示
1.3算法及其表示
詳細:
1.1計算機系統及內存編址
計算機系統由計算機硬件系統和軟件系統組成。只有硬件部分的計算機稱為裸機。裸機需要在操作系統的支持下才能工作。計算機軟件系統一般由系統軟件、應用軟件和共享程序組成。
1.2數和字符的編碼表示
計算機能夠識別的只能是二進制數
1.2.1進位計數制度
根據進位基數的不同,常用的有十進制、二進制、八進制、十六進制等。
a)二進制數及其運算
二進制數是由0和1組成的數字串,對于一個人進制數來講,它具有以下兩個特點:
1.只有0和1兩個不同的數字符號;
2.逢二進一
因此二進制(10110111)2數的值為:
(10110111)2=1×27+0×26+1×25+1×24+0×23+1×22+1×21+1×20=(183)10
而帶小數的二進制數(1011.1101)2
(1011.1101)2=1×23+0×22+1×21+1×20+0×2-1+1×2-2+1×2-3+1×2-4=(11.8125)10
二進制數的運算
加法規則: 0+0=0
0+1=1+0=1
1+1=0(向高位進一)
1+1+1=1(向高位進一)
減法規則類似。
b)八進制數及其運算
八進制數只有0-7這八個數字,八進制數具有以下基本特點:
1.0-7
2.逢八進一
C語言中通過加入前導零的方式來表示一個數是八進制數,例如0136
其余算法和二進制類似
c)十六進制及其運算
十六進制具有以下基本特點:
1.只有1,2,3,4,5,6,7,8,9,A,B,C,E,F十六個數字符號(英文字符可以使用小寫)
2.逢十六進一
C語言通過加入前導0X或者0x來表示一個數是十六進制,很多情況下,后加H也表示十六進制數字
d)進位制數之間的轉換
1.十進制整數轉換為二進制整數
采用除K取余倒著讀
2.二進制整數轉換為十進制整數
采用按權展開的方法
3.二進制整數轉換為八進制整數
3位二進制數的不同取值可以一一描述0-7,所以二進制整數轉換為八進制
采用3位分組法
4.八進制整數轉換為二進制整數
將每一位八進制數字轉換為相應的二進制書籍即可。
5.二進制整數轉換為十六進制
4位二進制數的不停取值可以一一描述0-F,所以二進制整數轉換為十六進制
采用4位分組法
6.十六進制整數轉換為二進制整數
方法和八進制整數轉換為二進制整數相類似。
1.3數的機器碼表示
a)機器數與真值
在計算機中,將一個數的最高位定義為符號位,其余各位為數值位,并且規定符號位之值為0表示正,為1表示負。用這種方法表示的數稱為機器數。機器數的數值稱為該機器數的真值,也就是正、負號后跟二進制數的絕對值就構成真值。
b)原碼
對于一個二進制數X,如果規定最高位為符號為,其余各位為該數的絕對值,并且規定符號位之值為0表示正,符號為之值為1表示負,采用這種形式的二進制編碼稱為該二進制數X的原碼。
c)補碼
補碼的定義是正數的補碼等于正數的原碼,負數的補碼為其原碼除符號為不動,其余各位變反再加1所得。
d)反碼
反碼。對于正數而言,其原碼,補碼和反碼一致;對于負數來說,反碼符號位的定義和原碼,補碼相同,但需要將對應原碼的數值為按位變反。
注:補充字符的編碼表示
1.3算法及其表示