程式設計師教程 第二版 學習筆記 一

2021-08-26 03:30:31 字數 2244 閱讀 2458

今年下半年的軟考報名時間截止到9月10號。現在我還不清楚要不要報名,因為怕公司的專案進度緊而影響了複習進度。不管是否參加軟考,作為一名剛畢業的程式設計師,我也應該掌握軟考考試大綱的知識點。

我看的教材是程式設計師教程第二版。

第一章是計算機系統基礎知識

我不是計算機專業的,再加上在學校學習的不多,書上的很多內容對於我來說新知識。我很渴望知識~~這次的學習筆記是乙個很白的菜鳥學習,見笑了!!

上圖為計算系統的組成示意圖。

我對儲存器的認識僅僅只是一部分,在這裡附上百科的儲存器介紹:

機器數有幾種編碼方法(這裡假設機器的字長為n):

1、原碼:最高位是符號位,其餘n-1位表示數值的絕對值

2、反碼:最高位是符號位。正數的反碼和原碼相同,負數的反碼n-1位是其絕對值按位取反

3、補碼:最高位是符號位。正數的補碼和原碼相同,負數的補碼n-1位=反碼+1

4、移碼:[x]移與[x]補的關係是符號位互為相反數

漢字編碼分為以下3類:

1、數字編碼(區位碼)【gb2312】。在這裡附上編碼對照表鏈結

2、拼音碼

3、字型編碼

這裡介紹下區位碼、國標碼與機內碼的轉換關係

(1)區位碼先轉換成十六進製制數表示 ;

(2)(區位碼的十六進製制表示)+2020h=國標碼;

(3)國標碼+8080h=機內碼 (國標碼的2個位元組最高位置1)

例如 漢字「大」

區位碼 2083 ------>1453h(區位碼)----->3473h(國際碼)-------->b4f3h (機內碼)

碼距是校驗碼中的乙個重要概念,它指的是乙個編碼系統中任意兩個合法編碼之間至少有多少個二進位制位不同。4位的8421碼的碼距為1,碼距為1的編碼方法既不能查錯也不能糾錯。

下面介紹3種校驗碼:

1、奇偶校驗碼

對資料傳輸正確性的一種校驗方法。在資料傳輸前附加一位奇校驗位,用來表示傳輸的資料中"1"的個數是奇數還是偶數,為奇數時,校驗位置為"0",否則置為"1",用以保持資料的奇偶性不變。例如,需要傳輸"11001110",資料中含5個"1",所以其奇校驗位為"0",同時把"110011100"傳輸給接收方,接收方收到資料後再一次計算奇偶性,"110011100"中仍然含有5個"1",所以接收方計算出的奇校驗位還是"0",與傳送方一致,表示在此次傳輸過程中未發生錯誤。奇偶校驗就是接收方用來驗證傳送方在傳輸過程中所傳資料是否由於某些原因造成破壞。

具體方法如下:

奇校驗:就是讓原有資料序列中(包括你要加上的一位)1的個數為奇數

1000110(0)你必須添0這樣原來有3個1已經是奇數了所以你添上0之後1的個數還是奇數個。

偶校驗:就是讓原有資料序列中(包括你要加上的一位)1的個數為偶數

1000110(1)你就必須加1了這樣原來有3個1要想1的個數為偶數就只能添1了。

大家一定會問,如何計算奇偶性呢,在計算機內有一種特殊的運算它遵守下面的規則:

1+1=0; 1+0=1; 0+1=1; 0+0=0;我們把傳送過來的1100111000逐位相加就會得到乙個1,應該注意的的,如果在傳送中1100111000變成為0000111000,通過上面的運算也將得到1,接收方就會認為傳送的資料是正確的,這個判斷正確與否的過程稱為校驗。而使用上面方法進行的校驗稱為奇校驗,奇校驗只能判斷傳送資料中奇數個資料從0變為1或從1變為0的情況,對於傳送中偶數個資料發生錯誤,它就無能為力了。

odd parity(奇校驗),校核資料完整性的一種方法,乙個位元組的8個資料位與校驗位(parity bit)加起來之和有奇數個1。校驗線路在收到數後,通過發生器在校驗位填上0或1,以保證和是奇數個1。因此,校驗位是0時,資料位中應該有奇數個1;而校驗位是1時,資料位應該有偶數個1。如果讀取資料時發現與此規則不符,cpu會下令重新傳輸資料。奇/偶校驗(ecc)是資料傳送時採用的一種校正資料錯誤的一種方式,分為奇校驗和偶校驗兩種。如果是採用奇校驗,在傳送每乙個位元組的時候另外附加一位作為校驗位,當實際資料中「1」的個數為偶數的時候,這個校驗位就是「1」,否則這個校驗位就是「0」,這樣就可以保證傳送資料滿足奇校驗的要求。在接收方收到資料時,將按照奇校驗的要求檢測資料中「1」的個數,如果是奇數,表示傳送正確,否則表示傳送錯誤。同理偶校驗的過程和奇校驗的過程一樣,只是檢測資料中「1」的個數為偶數。

在這裡附上實現**(c):

bit parity_odd(uint8_t *pdata) chtmp <<= 1; } } return parityflag; } bit parity_even(uint8_t *pdata)

2、漢明碼 貌似不常用,這裡不做介紹

3、迴圈冗餘校驗碼(crc) 以後深入再具體介紹

程式設計師教程 第二版 學習筆記 一

今年下半年的軟考報名時間截止到9月10號。現在我還不清楚要不要報名,因為怕公司的專案進度緊而影響了複習進度。不管是否參加軟考,作為一名剛畢業的程式設計師,我也應該掌握軟考考試大綱的知識點。我看的教材是程式設計師教程第二版。第一章是計算機系統基礎知識 我不是計算機專業的,再加上在學校學習的不多,書上的...

如何招到優秀的程式設計師(第二版)

根據大家的反饋,我發現在第一版中對優秀程式設計師的定位有一些偏差,因此作出改進,希望大家繼續拍磚!並慎重宣告 此處是討論如何招到優秀的程式設計師,如果你認為自己是優秀的,請說出你自認為優秀的地方,這會給hr的工作帶來幫助。大多數程式設計師抱怨公司不識泰山,這不正好是可以改善雙方選擇的方式方法嗎?筆試...

《程式設計師面試寶典》第二版的 錯誤修正

第一處 p38 下面程式的輸出結果是多少 void main 解答 輸出的結果是000000f7,fffffff7。變數i的輸出是沒有疑問的,unsigned int到unsigned char直接截斷,取低位元組。對於變數b,在第5行中,書中解釋是這一行等價於 unsigned int p a p...