第三周學習報告

來源:互聯網
上載者:User

標籤:

第二章 資訊的處理和表示 

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浮點格式定義了四種不同的舍入方式,預設方法是找到最接近的匹配,而其他三種可用於計算上界和下界。

遇到的問題:對運算的公式記憶比較差,需要把公式列在一邊邊看邊做,不能獨立離開公式做題,

以前的知識記得不夠勞,容易記混記錯。需要時常回去記憶之前的知識。。。。。。。

抱歉老師國慶出去玩了,這個部落格現在才交,望老師原諒

第三周學習報告

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.