標籤:
第二章 資訊的處理和表示
2.1資訊儲存
1.三種數位表示
無符號:編碼基於傳統的二進位標記法,表示大於或者等於零的數字。
補碼:編碼是表示有符號整數的最常見的方式,有 符號整數就是可以為正或者為負的數字。
浮點數:編碼是表示實數的科學記號標記法 的以二為基數的版本。
2.定址和位元組順序
小端法和大端法
小端法:最低有效位元組在前面——“高對高,低對低”
大端法:最高有效位元組在前面
3.邏輯運算和位元運算
(1)邏輯運算子&& (與)||(或)!(非)
(2)位元運算(按位布爾運算)所使用的符號&(AND)|(OR)~(NOT)^(EXCLUSIVE-OR)
掩碼——用來選擇性的屏蔽訊號
掩碼是一個位元模式,表示從一個字中選出的位的集合。用位向量給集合編碼,通過指定掩碼來有選擇的屏蔽或者不屏蔽一些訊號,比如某一位位置上為1時,表明訊號i是有效;0表示該訊號被屏蔽。
2.2整數表示
1.補碼編碼
補碼的利用寄存器的長度是固定的特性簡化數學運算。想想鐘錶,12-1 等價於 12 + 11,利用補碼可以把數學運算統一成加法,只要一個加法器就可以實現所有的數學運算。
2.有符號數和無符號數的轉換規則
無符號數:不存在正負之分,所有位都用來表示數的本身。 有符號數:最高位用來表示數的正負,最高位為1則表示負數,最高位為0則表示正數。 (1)無符號數轉換為有符號數 看無符號數的最高位是否為1,如果不為1(即為0),則有符號數就直接等於無符號數;如果無符號數的最高位為1,則將無符號數取補碼,得到的數就是有符號數。 (2)有符號數轉換為無符號數 看有符號數的最高位是否為1,如果不為1(即為0),則無符號數就直接等於有符號數;如果有符號數的最高位為1,則將有符號數取補碼,得到的數就是無符號數。
3.0擴充和符號擴充
擴充——從一個較小的資料類型轉換為較大的資料類型,同時保持數值不變。
(1)符號擴充:當用更多的記憶體儲存某一個有符號數時,由於符號位位於該數的第一位,擴充之後,符號位仍然需要位於第一位,所以,當擴充一個負數的時候需要將擴充的高位全賦為1;對於正數而言,符號擴充和零擴充是一樣的,因為符號位就是0。
比如一個用一個8位二進位表示-1,則是10000001
如果把這個書用16位二進位表示時,則為11111111 10000001 高位全都是1,這個叫做符號擴充,主要用於對其運算元。
(2)零擴充就是全補零。不論其符號位是多少,高8位全都補0.
能過上面的定義可以看出在C++中,如果把一個char向一個整形轉換的時候,就會存在著這個問題
如果你想得到一個正數,那麼如果一個字元的ASCII碼值是小於零的,而直接用(int)c進行強制類型轉換,結果是通過符號擴充得到的也為一個負數。要得到正數,一定要用(int)(unsigned char)c;因為unsigned char去除了c的符號位,所以,這樣的類型轉換後,再用(int)進行轉換得到的就是一個正數。
(3)從上機的敘述得知,有符號數向其它類型資料轉化(如char到int,char到unsigned int)時,進行符號位擴充;無符號數向其它類型轉換(如unsigned char到int, long)時,進行零擴充。
|
char |
short |
符號位擴充 |
|
char |
unsigned char |
最高位失去符號位意義,變為資料位元 |
|
char |
unsigned short |
符號位擴充到short;然後從short轉到unsigned short |
|
unsigned char |
char |
最高位作為符號位 |
|
unsigned char |
short |
0擴充 |
|
unsigned char |
float |
轉換到long; 再從 long 轉換到float |
|
| |
| |
(4)由大資料類型向小資料類型轉換時,保留低位位元組。
|
unsigned long |
char |
保留低位位元組 |
|
unsigned long |
short |
保留低位位元組 |
2.3整數運算
1.關於整數運算的最後思考
電腦執行的“整數”運算實際上是一種運算模式。表示數位有限字長限制了可能的值的取值範圍,運算結果可能溢出。C語言中的某些規定可能會產生令人意想不到的結果,而這些可能是難以察覺和理解的缺陷的源頭。
2.4浮點數
浮點表示對形如V=x*2y的有理數進行編碼近似地表示實數。當一個數字不能被準確表示時,必須向下或向上調整,由此產生了舍入(rounding)。IEEE浮點格式定義了四種不同的舍入方式,預設方法是找到最接近的匹配,而其他三種可用於計算上界和下界。
遇到的問題:對運算的公式記憶比較差,需要把公式列在一邊邊看邊做,不能獨立離開公式做題,
以前的知識記得不夠勞,容易記混記錯。需要時常回去記憶之前的知識。。。。。。。
抱歉老師國慶出去玩了,這個部落格現在才交,望老師原諒
第三周學習報告