初賽複習總綱
目錄
計算機發展史
1946~1957 | 電子管 |
---|---|
1958~1964 | 晶體管 |
1965~1970 | 規模集成電路 |
1958~1964 | 超大,大規模集成電路 |
世界上第一臺電子計算機"ENIAC"於1946年2月14日在美國賓夕法尼亞大學誕生,是美國人莫克利(JohnW.Mauchly)和艾克特(J.PresperEckert)發明的,主要是有大量的電子管組成
馮•諾依曼理論
1944年,美籍匈牙利數學家 馮•諾依曼 提出計算機基本結構和工作方式的設想,爲計算機的誕生和發展提供了理論基礎。時至今日,儘管計算機軟硬件技術飛速發展,但計算機本身的體系結構並沒有明顯的突破,當今的計算機仍屬於馮•諾依曼架構。
其理論要點如下:
- 計算機硬件設備由存儲器、運算器、控制器、輸入設備和輸出設備5部分組成
- 存儲程序思想——把計算過程描述爲由許多命令按一定順序組成的程序,然後把程序和數據一起輸入計算機,計算機對已存入的程序和數據處理後,輸出結果。
計算機的分類
- 專用機與通用機:早期計算機均針對特定用途而設計,具有專用性質。60年代起,開始製造兼顧科學計算、事務處理和過程控制三方面應用的通用計算機。特別是系列機的出現,標準文本的各種高級程序語言的採用,操作系統的成熟,使一種機型系列選擇不同軟件、硬件配置,就能滿足各行業大小用戶的不同需要,進一步強化了通用性。但特殊用途的專用機仍在發展,例如連續動力學系統的全數字仿真機,超微型的空間專用計算機等。
- 巨型機、大型機、中型機、小型機、微型機:計算機是以大、中型機爲主線發展的。20世紀60年代末出現小型計算機,70年代初出現微型計算機,因其輕巧、價廉、功能較強、可靠性高,而得到廣泛應用。70年代開始出現每秒可運算五千萬次以上的巨型計算機,專門用於解決科技、國防、經濟發展中的特大課題。巨、大、中、小、微型機作爲計算機系統的梯隊組成部分,各有其用途,都在迅速發展。
- 流水線處理機與並行處理機:在元件、器件速度有限的條件下,從系統結構與組織着手來實現高速處理能力,成功地研製出這兩種處理機。它們均面向ɑiθbi=ci(i=1,2,3,…,n;θ爲算符)這樣一組數據(也叫向量)運算。流水線處理機是單指令數據流(SISD)的,它們用重疊原理,用流水線方式加工向量各元素,具有高加工速率。並行處理機是單指令流多數據流(SIMD)的,它利用並行原理,重複設置多個處理部件,同時並行處理向量各元素來獲得高速度(見並行處理計算機系統)。流水和並行技術還可結合,如重複設置多個流水部件,並行工作,以獲得更高性能。研究並行算法是發揮這類處理機效率的關鍵。在高級程序語言中相應地擴充向量語句,可有效地組織向量運算;或設有向量識別器,自動識別源程序中的向量成分。
一臺普通主機(標量機)配一臺數組處理器(僅作高速向量運算的流水線專用機),構成主副機系統,可大大提高系統的處理能力,且性能價格比高,應用相當廣泛。 - 多處理機與多機系統、分佈處理系統和計算機網:多處理機與多機系統是進一步發展並行技術的必由之路,是巨型、大型機主要發展方向。它們是多指令流多數據流(MIMD)系統,各機處理各自的指令流(進程),相互通信,聯合解決大型問題。它們比並行處理機有更高的並行級別,潛力大,靈活性好。用大量廉價微型機,通過互連網絡構成系統,以獲得高性能,是研究多處理機與多機系統的一個方向。多處理機與多機系統要求在更高級別(進程)上研究並行算法,高級程序語言提供併發、同步進程的手段,其操作系統也大爲複雜,必須解決多機間多進程的通信、同步、控制等問題。
分佈系統是多機系統的發展,它是由物理上分佈的多個獨立而又相互作用的單機,協同解決用戶問題的系統,其系統軟件更爲複雜(見分佈計算機系統)。
現代大型機幾乎都是功能分佈的多機系統,除含有高速中央處理器外,有管理輸入輸出的輸入輸出處理機(或前端用戶機)、管理遠程終端及網絡通信的通信控制處理機、全系統維護診斷的維護診斷機和從事數據庫管理的數據庫處理機等。這是分佈系統的一種低級形態。
多個地理上分佈的計算機系統,通過通信線路和網絡協議,相互聯絡起來,構成計算機網絡。它按地理上分佈的遠近,分爲局部(本地)計算機網絡和遠程計算機網絡。網絡上各計算機可相互共享信息資源和軟硬件資源。訂票系統、情報資料檢索系統都是計算機網應用的實例。 - 諾依曼機與非諾依曼機:存儲程序和指令驅動的諾依曼機迄今仍佔統治地位。它順序執行指令,限制了所解問題本身含有的並行性,影響處理速度的進一步提高。突破這一原理的非諾依曼機,就是從體系結構上來發展並行性,提高系統吞吐量,這方面的研究工作正在進行中。由數據流來驅動的數據流計算機以及按歸約式控制驅動和按需求驅動的高度並行計算機,都是有發展前途的非諾依曼計算機系統。
計算機的應用
- 科學計算(或稱爲數值計算) 早期的計算機主要用於科學計算。科學計算仍然是計算機應用的一個重要領域。如高能物理、工程設計、地震預測、氣象預報、航天技術等。由於計算機具有高運算速度和精度以及邏輯判斷能力,因此出現了計算力學、計算物理、計算化學、生物控制論等新的學科。
- 過程檢測與控制 利用計算機對工業生產過程中的某些信號自動進行檢測,並把檢測到的數據存入計算機,再根據需要對這些數據進行處理,這樣的系統稱爲計算機檢測系統。特別是儀器儀表引進計算機技術後所構成的智能化儀器儀表,將工業自動化推向了一個更高的水平。
- 信息管理(數據處理) 信息管理是計算機應用最廣泛的一個領域。利用計算機來加工、管理與操作任何形式的數據資料,如企業管理、物資管理、報表統計、帳目計算、信息情報檢索等。國內許多機構紛紛建設自己的管理信息系統(MIS);生產企業也開始採用製造資源規劃軟件(MRP),商業流通領域則逐步使用電子信息交換系統(EDI),即所謂無紙貿易。
- 計算機輔助系統計算機輔助設計、製造、測試(CAD/CAM/CAT)。用計算機輔助進行工程設計、產品製造、性能測試。
- 辦公自動化:用計算機處理各種業務、商務;處理數據報表文件;進行各類辦公業務的統計、分析和輔助決策。
- 經濟管理:國民經濟管理,公司企業經濟信息管理,計劃與規劃,分析統計,預測,決策;物資、財務、勞資、人事等管理。
- 情報檢索:圖書資料、歷史檔案、科技資源、環境等信息檢索自動化;建立各種信息系統。
- 自動控制:工業生產過程綜合自動化,工藝過程最優控制,武器控制,通信控制,交通信號控制。模式識別:應用計算機對一組事件或過程進行鑑別和分類,它們可以是文字、聲音、圖像等具體對象,也可以是狀態、程度等抽象對象。
- 人工智能。 開發一些具有人類某些智能的應用系統,如計算機推理、智能學習系統、專家系統、機器人等,幫助人們學習和完成某些推理工作。
操作系統盤點
- Android
- BSD
- iOS
- Linux
- Mac OS X
- Windows
- Windows Phone
- z/OS
計算機的基本結構
計算機系統由硬件和軟件兩部分組成。硬件系統相當於計算機的“軀幹”,是物質基礎。而軟件系統相當於這個“軀幹”上的“靈魂”。
硬件系統由主機和外設組成。主機有中央處理器(CPU)和內存。中央處理器分別爲控制器和運算器。內存分別爲只讀存儲器(ROM),讀寫存儲器(RAM),高速緩衝存儲器(Cache)。外設有輸入設備(如鍵盤,鼠標,掃描儀),輸出設備(如顯示器,打印機,音響),外存(如硬盤,軟盤,光盤,優盤(閃存))。
軟件系統由系統軟件和應用軟件組成。系統軟件分別有操作系統,編譯程序和解釋程序,數據庫管理系統。軟件系統有各種字處理系統,各種軟件包。
由運算器,控制器和一些寄存器組成。
- 運算器進行各種算術運算和邏輯運算
- 控制器是計算機的指揮系統
- CPU的主要性能指標是主頻和字長
- 存儲器的主要功能是用來保存各類程序的數據信息
- 存儲器可分爲主存儲器和輔助存儲器兩類
- 主存儲器(Main memory),簡稱主存。是計算機硬件的一個重要部件,其作用是存放指令和數據,並能由中央處理器(CPU)直接隨機存取。
- 輔助儲存器是指除計算機內存及CPU緩存以外的儲存器,此類儲存器一般斷電後仍然能保存數據。常見的外存儲器有硬盤、軟盤、光盤、U盤等。
內存
內存(主存)是計算機中重要的部件之一,它是與CPU進行溝通的橋樑。計算機中所有程序的運行都是在內存中進行的,因此內存的性能對計算機的影響非常大。內存(Memory)也被稱爲內存儲器和主存儲器,其作用是用於暫時存放CPU中的運算數據,以及與硬盤等外部存儲器交換的數據。只要計算機在運行中,CPU就會把需要運算的數據調到內存中進行運算,當運算完成後CPU再將結果傳送出來,內存的運行也決定了計算機的穩定運行。
內存容量同硬盤、軟盤等存儲器容量單位都是相同的,它們的基本單位都是字節(B),它們之間的關係是:
1PB=1024TB
1TB=1024GB
1GB=1024MB
1MB=1024KB
1KB=1024B
內存儲器通常可以分爲隨機存儲器(RAM),只讀存儲器(ROM)和高速緩存存儲器(Cache)三種。
- RAM 是一種讀寫存儲器,其中的內容可以根據需要隨時讀出,也可以隨時重新寫入新的信息。當斷電時, RAM 中保存的信息將全部丟失。
- ROM 是一種只讀存儲器,其儲存的信息在製作時就寫入的。當計算機在運行的過程中,只能讀出 ROM 中的信息,斷電後, ROM 中的信息不會丟失。
- Cache 是在 CPU 與內存之間設置的一級或兩級高速小容量存儲器。又名高速緩存存儲器。在計算機工作時,系統先將數據由外讀入 RAM 中,再由 RAM 讀入 Cache 中,然後 CPU 直接從 Cache 中取數據進行工作。
外存儲器
外存儲器:也稱爲輔助存儲器,一般容量較大,速度比主存較慢。
- 硬盤(Hard disk):目前的硬盤大多采用了溫徹斯特技術,所以又稱爲“溫盤”;
溫氏技術的特點是:將盤片、讀寫磁頭及驅動裝置精密地組裝在一個密封盒裏;採用接觸式起停,非接觸式讀寫的方式(磁盤不工作時,磁頭停在磁盤表面的起停區,一旦加電後,磁頭隨着盤片旋轉的氣流“飛”起來,懸浮在磁盤表面,進行讀寫)。
•鍵盤(Keyboard):目前大多使用104或108鍵盤
•鼠標(Mouse):主要有機械型鼠標和光電型鼠標兩種
•手寫筆 •觸摸屏 •麥克風 •掃描儀(Scanner)•視頻輸入設備•條形碼掃描器
•顯示器(Monitor):目前主要有CRT(陰極射線管)顯示器和LCD液晶顯示器。
•打印機(Printer):主要有針式打印機、噴墨打印機、激光打印機。
•繪圖儀 •音箱
進制轉換
八進制和十進制的對應表
左八進制,右十進制
0 | 0 |
---|---|
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
10 | 8 |
11 | 9 |
12 | 10 |
二進制和十進制的對應表
左二進制,右十進制
0 | 0 |
---|---|
1 | 1 |
10 | 2 |
11 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | 10 |
八進制和十六進制的對應表
左八進制,右十六進制
0 | 0 |
---|---|
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
10 | 8 |
11 | 9 |
12 | 10 |
13 | 1A |
14 | 1B |
15 | 1C |
16 | 1D |
17 | 1E |
二進制和八進制的對應表
左二進制,右八進制
0 | 0 |
---|---|
1 | 1 |
10 | 2 |
11 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
1000 | 11 |
1001 | 12 |
1010 | 13 |
十進制和十六進制的對應表
左十進制,右十六進制
0 | 0 |
---|---|
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 8 |
9 | 9 |
10 | 10 |
11 | 1A |
12 | 1B |
13 | 1C |
14 | 1D |
15 | 1E |
二進制和十六進制的對應表
左二進制,右十六進制
0 | 0 |
---|---|
1 | 1 |
10 | 2 |
11 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | 10 |
1011 | 1A |
1100 | 1B |
1101 | 1C |
1110 | 1D |
1111 | 1E |
二進制轉十進制
二進制轉十進制的方法是按權展開求和。
規律:個位上的數字的次數是0,十位上的數字的次數是1,…,依次遞增,而十 分位的數字的次數是-1,百分位上數字的次數是-2,…,依次遞減。注意:不是任何一個十進制小數都能轉換成有限位的二進制數。
【例】: 二進制1011轉換成十進制是11
擴展資料: 採用二進制的原因:
(1)技術實現簡單,計算機是由邏輯電路組成,邏輯電路通常只有兩個狀態,開關的接通與斷開,這兩種狀態正好可以用“1”和“0”表示。
(2)簡化運算規則:兩個二進制數和、積運算組合各有三種,運算規則簡單,有利於簡化計算機內部結構,提高運算速度。
(3)適合邏輯運算:邏輯代數是邏輯運算的理論依據,二進制只有兩個數碼,正好與邏輯代數中的“真”和“假”相吻合。
(4)易於進行轉換,二進制與十進制數易於互相轉換。
(5)用二進制表示數據具有抗干擾能力強,可靠性高等優點。因爲每位數據只有高低兩個狀態,當受到一定程度的干擾時,仍能可靠地分辨出它是高還是低。
二進制轉十六進制
二進制轉換成十六進制的方法是,取四合一法,只要每組4位,分別對應8、4、2、1就行了(不四夠位的在最前面添0,添到夠爲止)
【例】:010110111011=0101,1011,1011 運算爲:
0101 = 4+1 = 5
1011 = 8+2+1 = 11
1011 = 8+2+1 = 11
結果爲 5BB
二進制轉八進制
二進制轉換成八進制的方法是,取三合一法,即從二進制的小數點爲分界點,後面每三位取成一位(不夠三位的在最前面添0,添到夠爲止)。
分好組以後,對照二進制與八進制數的對應表,將三位二進制按權相加,得到的數就是一位八進制數,然後按順序排列,小數點的位置不變,最後得到的就是八進制數。
【例】:1011011101 = 001,011,011,101
001就是0+0+1
011是0 * 4+1 * 2+1=0+2+1
101=1 * 4+0 * 2+1=4+0+1
十進制轉二進制
十進制整數轉換爲二進制整數採用"除2取餘,逆序排列"法。具體做法是:用2整除十進制整數,可以得到一個商和餘數;再用2去除商,又會得到一個商和餘數,如此進行,直到商爲0時爲止,然後把先得到的餘數作爲二進制數的低位有效位,後得到的餘數作爲二進制數的高位有效位,依次排列起來。
【例】:
789/2=394 --------1
394/2=197 --------0
197/2=98 ----------1
98/2=49 ------------0
49/2=24 ------------1
24/2=12 ------------0
12/2=6 --------------0
6/2=3 ----------------0
3/2=1 ----------------1
1/2=0 ----------------1
所以 789=1100010101
十進制轉八進制
十進制整數轉換爲八進制整數採用"除8取餘,逆序排列"法。具體做法是:用八整除十進制整數,可以得到一個商和餘數;再用八去除商,又會得到一個商和餘數,如此進行,直到商爲0時爲止,然後把先得到的餘數作爲八進制數的低位有效位,後得到的餘數作爲八進制數的高位有效位,依次排列起來。
【例】:
2347/8=293-----3
293/8=36--------5
36/8=4-----------4
4/8=0-------------4
所以2347(10)=4453(8)
邏輯運算
邏輯與:∧(或‘·’)
邏輯或:∨ (或‘+’)
邏輯非:┐
優先級:邏輯非>邏輯與>邏輯或,有括號按括號,無括號先按優先級,同級運算從左至右
與位運算結合優先級:邏輯非(!,┐)=按位反(~)>位移運算(<<,>>)>不等號(>=,<=)>等號(==,!=)>按位與(&)>按位異或(^)>按位或(|)>邏輯與(&&,∧)>邏輯或(||,∨)
排序算法穩定性
選擇排序、快速排序(快排)、堆排序、希爾排序不穩定。
冒泡排序、歸併排序、插入排序、桶排序穩定。
高級語言
計算機語言具有高級語言和低級語言之分。而高級語言又主要是相對於彙編語言而言的,它是較接近自然語言和數學公式的編程,基本脫離了機器的硬件系統,用人們更易理解的方式編寫程序。編寫的程序稱之爲源程序。
高級語言並不是特指的某一種具體的語言,而是包括很多編程語言,如流行的
java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,易語言,中文版的C語言
等等,這些語言的語法、命令格式都不相同。
高級語言與計算機的硬件結構及指令系統無關,它有更強的表達能力,可方便地表示數據的運算和程序的控制結構,能更好的描述各種算法,而且容易學習掌握。但高級語言編譯生成的程序代碼一般比用匯編程序語言設計的程序代碼要長,執行的速度也慢。所以彙編語言適合編寫一些對速度和代碼長度要求高的程序和直接控制硬件的程序。高級語言、彙編語言和機器語言都是用於編寫計算機程序的語言。
高級語言程序“看不見”機器的硬件結構,不能用於編寫直接訪問機器硬件資源的系統軟件或設備控制軟件。爲此,一些高級語言提供了與彙編語言之間的調用接口。用彙編語言編寫的程序,可作爲高級語言的一個外部過程或函數,利用堆棧來傳遞參數或參數的地址。
面向對象的語言
C++、Java、C#、Python等是典型的面嚮對象語言。 Fortran和Basic不是面嚮對象語言。
二叉樹
二叉樹的三種遍歷方式:
- 先序遍歷:根-左-右
- 中序遍歷:左-根-右
- 後序遍歷:左-右-根
結論:給定中序遍歷和先序遍歷或後序遍歷組合都可以確定這棵二叉樹,但是給定先序遍歷和後序遍歷組合則不可確定
二叉樹的特性
二叉樹特例:
完全二叉樹:對於每個節點,都有兩個子節點
滿二叉樹:對於每個節點,都有兩個子節點且樹完全“平衡”,總節點個數爲2^k-1,k∈Z
二叉樹的有關公式: 一棵滿二叉樹:節點個數爲2k-1,葉節點個數爲2k-1(其中k爲樹的高度)
二叉樹的深度均攤爲log2n,其中n爲節點個數(這就是treap等二叉搜索樹時間複雜度的來源)
棧
棧(stack)又名堆棧,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱爲棧頂,相對地,把另一端稱爲棧底。向一個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成爲新的棧頂元素;從一個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成爲新的棧頂元素。
棧只有一個口(可出可入),先進後出
棧的操作
進棧(push),出棧(pop),判斷棧的大小(sta.size()),判斷棧是否爲空(sta.empty())
定義一個棧 (要加頭文件 #include< stack > )
stack < int > sta;
# define n 100 //棧的操作
void push ( int s[] , int * top , int * x ) //入棧
{
if ( * top == n) printf("overflow");
else {
* top ++;
s[ * top ] = * x;
}
}
void pop ( int s[] , int * y , int * top )//出棧
{
if ( * top == 0) printf("underflow");
else {
* y = s[ * top ];
* top --;
}
}
隊列
隊列是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,隊列是一種操作受限制的線性表。進行插入操作的端稱爲隊尾,進行刪除操作的端稱爲隊頭。
順序隊列中的溢出現象:
- "下溢"現象:當隊列爲空時,做出隊運算產生的溢出現象。“下溢”是正常現象,常用作程序控制轉移的條件。
- "真上溢"現象:當隊列滿時,做進棧運算產生空間溢出的現象。“真上溢”是一種出錯狀態,應設法避免。
- "假上溢"現象:由於入隊和出隊操作中,頭尾指針只增加不減小,致使被刪元素的空間永遠無法重新利用。當隊列中實際的元素個數遠遠小於向量空間的規模時,也可能由於尾指針已超越向量空間的上界而不能做入隊操作。該現象稱爲"假上溢"現象。
循環隊列
在實際使用隊列時,爲了使隊列空間能重複使用,往往對隊列的使用方法稍加改進:無論插入或刪除,一旦rear指針增1或front指針增1 時超出了所分配的隊列空間,就讓它指向這片連續空間的起始位置。自己真從MaxSize-1增1變到0,可用取餘運算rear%MaxSize和front%MaxSize來實現。這實際上是把隊列空間想象成一個環形空間,環形空間中的存儲單元循環使用,用這種方法管理的隊列也就稱爲循環隊列。除了一些簡單應用之外,真正實用的隊列是循環隊列。
在循環隊列中,當隊列爲空時,有front=rear,而當所有隊列空間全佔滿時,也有front=rear。爲了區別這兩種情況,規定循環隊列最多只能有MaxSize-1個隊列元素,當循環隊列中只剩下一個空存儲單元時,隊列就已經滿了。因此,隊列判空的條件時front=rear,而隊列判滿的條件時front=(rear+1)%MaxSize。
圖
圖的分類
有/無向圖
如果給圖的每條邊規定一個方向,那麼得到的圖稱爲有向圖。在有向圖中,與一個節點相關聯的邊有出邊和入邊之分。相反,邊沒有方向的圖稱爲無向圖。
單圖
一個圖如果任意兩頂點之間只有一條邊(在有向圖中爲兩頂點之間每個方向只有一條邊);邊集中不含環,則稱爲單圖
圖的定義
圖主要有以下兩種定義。
二元組的定義
圖G是一個有序二元組(V,E),其中V稱爲頂集(Vertices Set),E稱爲邊集(Edges set),E與V不相交。它們亦可寫成V(G)和E(G)。
E的元素都是二元組,用(x,y)表示,其中x,y∈V。
三元組的定義
圖G是指一個三元組(V,E,I),其中V稱爲頂集,E稱爲邊集,E與V不相交;I稱爲關聯函數,I將E中的每一個元素映射到 V✖V 。如果e被映射到(u,v),那麼稱邊e連接頂點u,v,而u,v則稱作e的端點,u,v此時關於e相鄰。同時,若兩條邊i,j有一個公共頂點u,則稱i,j關於u相鄰。
圖的遍歷
深度優先遍歷
深度優先遍歷的思想類似於樹的先序遍歷。其遍歷過程可以描述爲:從圖中某個頂點v出發,訪問該頂點,然後依次從v的未被訪問的鄰接點出發繼續深度優先遍歷圖中的其餘頂點,直至圖中所有與v有路徑相通的頂點都被訪問完爲止。
廣度優先遍歷
對圖的廣度優先遍歷方法描述爲:從圖中某個頂點v出發,在訪問該頂點v之後,依次訪問v的所有未被訪問過的鄰接點,然後再訪問每個鄰接點的鄰接點,且訪問順序應保持先被訪問的頂點其鄰接點也優先被訪問,直到圖中的所有頂點都被訪問爲止。下面是對一個無向圖進行廣度優先遍歷的過程。
圖的存儲結構
二維數組鄰接矩陣存儲
定義 int G [101] [101]
G [i] [j]的值,表示點i到點j的邊的權值,定義如下:
G [i] [j] { 1 或 權值 當 Vi 與 Vj 之間有邊或弧時,取值爲 1 或權值 |----| 0 或 ∝ 當 Vi 與 Vj 之間無邊或弧時,取值爲 0 或 ∝(無窮大)}
帶符號數的機器碼錶示方法
帶符號二進制數的表示方法:
帶符號二進制數用最高位的一位數來表示符號:0表示正,1表示負。
含符號位二進制數位數 數值範圍 十六進制範圍表示法
8位二進制數 -128 ~ +127 80H~7FH
16位二進制數 -32768 ~ +32767 8000H~7FFFH
32位二進制數 -2147483648 ~ +2147483647 80000000H~7FFFFFFFH
符號位的表示
最常用的表示方法有原碼、反碼和補碼。
(1)原碼錶示法:一個機器數x由符號位和有效數值兩部分組成,設符號位爲x0,x真值的絕對值|x|=x1x2x3…xn,則x的機器數原碼可表示爲:
[x]原= ,當x>=0時,x0=0,當x<0時,x0=1。
例如:已知:x1=-1011B,x2= +1001B,則x1,x2有原碼分別是
[x1] 原=11011B,[x2]原=01001B
規律:正數的原碼是它本身,負數的原碼是取絕對值後,在最高位(左端)補“1”。
(2)反碼錶示法:一個負數的原碼符號位不變,其餘各位按位取反就是機器數的反碼錶示法。正數的反碼與原碼相同。
按位取反的意思是該位上是1的,就變成0,該位上是0的就變成1。即1=0,0=1
(3)補碼錶示法:
首先分析兩個十進制數的運算:78-38=41,79+62=141
如果使用兩位數的運算器,做79+62時,多餘的100因爲超出了運算器兩位數的範圍而自動丟棄,這樣在做78-38的減法時,用79+62的加法同樣可以得到正確結果。
模是批一個計量系統的測量範圍,其大小以計量進位制的基數爲底數,位數爲指數的冪。如兩位十進制數的測量範圍是1——9,溢出量是100,模就是102=100,上述運算稱爲模運算,可以寫作:
79+(-38)=79+62 (mod 100)
進一步寫爲 -38=62,此時就說 –38的補法(對模100而言)是62。計算機是一種有限字長的數字系統,因此它的運算都是有模運算,超出模的運算結果都將溢出。n位二進制的模是2n,
一個數的補碼記作[x]補,設模是M,x是真值,則補碼的定義如下:
例:設字長n=8位,x=-1011011B,求[x]補。
解:因爲 n=8,所以模 M=28=100000000B,x<0,所以
[x]補=M+x=100000000B-1011011B=10100101B
注意:這個x的補碼的最高位是“1”,表明它是一個負數。對於二進制數還有一種更加簡單的方法由原碼求出補碼:
(1)正數的補碼錶示與原碼相同;
(2)負數的補碼是將原碼符號位保持“1”之後,其餘各位按位取反,末位再加1便得到補碼,即取其原碼的反碼再加“1”:[x]補=[x]反+1。
下表列出 的8位二進制原碼,反碼和補碼並將補碼用十六進制表示。
真值 原碼(B) 反碼(B) 補碼(B) 補碼(H)
+127 0 111 1111 0 111 1111 0 111 1111 7F
+39 0 010 0111 0 010 0111 0 010 0111 27
+0 0 000 0000 0 000 0000 0 000 0000 00
-0 1 000 0000 1 111 1111 0 000 0000 00
-39 1 010 0111 1 101 1000 1 101 1001 D9
-127 1 111 1111 1 000 0000 1 000 0001 81
-128 無法表示 無法表示 1 000 0000 80
從上可看出,真值+0和-0的補碼錶示是一致的,但在原碼和反碼錶示中具有不同形式。8位補碼機器數可以表示-128,但不存在+128的補碼與之對應,由此可知,8位二進制補碼能表示數的範圍是-128——+127。還要注意,不存在-128的8位原碼和反碼形式。
定點數和浮點數
(一)定點數(Fixed-Point Number)
計算機處理的數據不僅有符號,而且大量的數據帶有小數,小數點不佔有二進制一位而是隱含在機器數裏某個固定位置上。通常採取兩種簡單的約定:一種是約定所有機器數的小數的小數點位置隱含在機器數的最低位之後,叫定點純整機器數,簡稱定點整數。另一種約定所有機器數的小數點隱含在符號位之後、有效部分最高位之前,叫定點純小數機器數,簡稱定點小數。無論是定點整數,還是定點小數,都可以有原碼、反碼和補碼三種形式。
(二)浮點數(Floating-Point Number)
計算機多數情況下采作浮點數表示數值,它與科學計數法相似,把一個二進制數通過移動小數點位置表示成階碼和尾數兩部分:
其中:E——N的階碼(Expoent),是有符號的整數
S——N的尾數(Mantissa),是數值的有效數字部分,一般規定取二進制定點純小數形式。
例:1011101B=2+70.1011101,101.1101B=2+30.1011101,0.01011101B=2-1*0.1011101
浮點數的格式如下:
E0
E1E2……………En
E0
E1E2……………En
階符 階 尾符 尾數
浮點數由階碼和尾數兩部分組成,底數2不出現,是隱含的。階碼的正負符號E0,在最前位,階反映了數N小數點的位置,常用補碼錶示。二進制數N小數點每左移一位,階增加1。尾數是這點小數,常取補碼或原碼,碼制不一定與階碼相同,數N的小數點右移一位,在浮點數中表現爲尾數左移一位。尾數的長度決定了數N的精度。尾數符號叫尾符,是數N的符號,也佔一位。
例:寫出二進制數-101.1101B的浮點數形式,設階碼取4位補碼,尾數是8位原碼。
-101.1101=-0.10111012+3
浮點形式爲:
階碼0011 尾數11011101
補充解釋:階碼0011中的最高位“0”表示指數的符號是正號,後面的“011”表示指數是“3”;尾數11011101的最高位“1”表明整個小數是負數,餘下的1011101是真正的尾數。
例:計算機浮點數格式如下,寫出x=0.0001101B的規格化形式,階碼是補碼,尾數是原碼。
x=0.0001101=0.110110-3
又[-3]補=[-001B]補=[1011]補=1101B
所以 浮點數形式是
1 101 0 1101000
漢字信息編碼
漢字輸入方法大體可分爲:區位碼(數字碼)、音碼、形碼、音形碼。
• 區位碼:優點是無重碼或重碼率低,缺點是難於記憶;
• 音碼:優點是大多數人都易於掌握,但同音字多,重碼率高,影響輸入的速度;
• 形碼:根據漢字的字型進行編碼,編碼的規則較多,難於記憶,必須經過訓練才能較好地掌握;重碼率低;
•音形碼:將音碼和形碼結合起來,輸入漢字,減少重碼率,提高漢字輸入速度。
漢字交換碼是指不同的具有漢字處理功能的計算機系統之間在交換漢字信息時所使用的代碼標準。自國家標準GB2312-80公佈以來,我國一直延用該標準所規定的國標碼作爲統一的漢字信息交換碼。
GB2312-80標準包括了6763個漢字,按其使用頻度分爲一級漢字3755個和二級漢字3008個。一級漢字按拼音排序,二級漢字按部首排序。此外,該標準還包括標點符號、數種西文字母、圖形、數碼等符號682個。
由於GB2312-80是80年代制定的標準,在實際應用時常常感到不夠,所以,建議處理文字信息的產品採用新頒佈的GB18030信息交換用漢字編碼字符集,這個標準繁、簡字均處同一平臺,可解決兩岸三地間GB碼與BIG5碼間的字碼轉換不便的問題。
字形存儲碼是指供計算機輸出漢字(顯示或打印)用的二進制信息,也稱字模。通常,採用的是數字化點陣字模。
ASCII碼
ASCII碼 ( American Standard Code for Information Interchange )
美國標準信息交換代碼
將每個字符用7位的二進制數來表示,共有128種狀態
大小字母、0—9、其它符號、控制符
‘ 0 ’ ―― 48
‘ A ’ ―― 65
‘ a ’ ―― 97
信息安全
- 計算機安全(computer security)是指防範與保護計算機系統及其信息資源在生存過程中免受蓄意攻擊、人爲失誤和自然災害等引起的損失和破壞。
- 計算機病毒是人類自己想像和發明出來的,它是一種特殊的程序,有着與生物病毒極爲相似的特點。一是寄生性,它們大多依附在別的程序上面。二是隱蔽性,它們是悄然進入系統的,人們很難察覺。三是潛伏性,它們通常是潛伏在計算機程序中,只在一定條件下才發作的。四是傳染性,它們能夠自我複製繁殖,通過傳輸媒介蔓延。五是破壞性,輕則佔用一定數量的系統資源,重則破壞整個系統。
對於計算機病毒,我們不必談虎變色,而應採取積極的防治態度。首先,要防止“病從口入”,因爲病毒不是自生的,而是外來的。另外,要用優秀的防殺病毒軟件,對外來的軟件和資料要進行嚴格的檢查和殺毒。注意,防殺病毒軟件需要及時更新(主要是其中的數據文件),一般每週一次,不更新基本上等於沒有防殺毒功能。 - 20世紀50、60年代,黑客(hacker)曾是編程高手的代名詞。後來,黑客成爲一個獨特的羣體,他們通過各種渠道交流技藝,不少人以攻擊計算機及其網絡系統爲樂趣。黑客們的膽大妄爲已經給社會造成了很大的影響,一些黑客已經蛻變爲威脅社會安全的罪犯。要防止“黑客”攻擊,主要方法是加強安全措施,例如設置防火牆。防火牆是一種計算機設備,它設置在內部網絡與外部網絡之間,起一個隔離的作用,既可以阻止外部信息非法進入內部系統,也可以阻止內部人員非法訪問外部系統。
網絡
所謂計算機網絡,就是利用通信線路和設備,把分佈在不同地理位置上的多臺計算機連接起來。
計算機網絡是現代通信技術與計算機技術相結合的產物。
網絡中計算機與計算機之間的通信依靠協議進行。協議是計算機收、發數據的規則。
TCP/IP:用於網絡的一組通訊協議。包括IP(Internet Protocol)和TCP(Transmission Control Protocol)。
TCP/IP是一組協議,包括上百個各種功能的協議,其中TCP 和IP是最核心的兩個協議。TCP/IP 協議把Internet網絡系統描述成具有四個層次功能的網絡模型。
- 鏈路層:這是TCP/IP 結構的第一層,也叫網絡接口層,其功能是提供網絡相鄰節點間的信息傳輸以及網絡硬件和設備驅動。
- 網絡層:(IP協議層)其功能是提供源節點和目的節點之間的信息傳輸服務,包括尋址和路由器選擇等功能。
- 傳輸屋:(TCP 協議)其功能是提供網絡上的各應用程序之間的通信服務。
- 應用層:這是TCP/IP最高層,其功能是爲用戶提供訪問網絡環境的手段,主要提供FTP、TELNET、GOPHER等功能軟件。
IP協議適用於所有類型網絡。TCP 協議則處理IP協議所遺留的通信問題,爲應用程序提供可靠的通信連接,並能自動適應網絡的變化。TCP/IP 目前成爲最爲成功的網絡體系結構和協議規範。
Netbeui:一種非常簡單的協議,MICROSOFT開發。
IPX:用於NOVELL網絡。
計算機網絡的發展過程大致可以分爲三個階段:
遠程終端聯機階段:主機—終端
計算機網絡階段:計算機—計算機
計算機網絡的分類方式有很多種,可以按地理範圍、拓撲結構、傳輸速率和傳輸介質等分類。
⑴按地理範圍分類
①局域網LAN(Local Area Network)
局域網地理範圍一般幾百米到10km 之內,屬於小範圍內的連網。如一個建築物內、一個學校內、一個工廠的廠區內等。局域網的組建簡單、靈活,使用方便。
②城域網MAN(Metropolitan Area Network)
城域網地理範圍可從幾十公里到上百公里,可覆蓋一個城市或地區,是一種中等形式的網絡。
③廣域網WAN(Wide Area Network)
廣域網地理範圍一般在幾千公里左右,屬於大範圍連網。如幾個城市,一個或幾個國家,是網絡系統中的最大型的網絡,能實現大範圍的資源共享,如國際性的Internet 網絡。
⑵按傳輸速率分類
網絡的傳輸速率有快有慢,傳輸速率快的稱高速網,傳輸速率慢的稱低速網。傳輸速率的單位是b/s(每秒比特數,英文縮寫爲bps)。一般將傳輸速率在Kb/s—Mb/s範圍的網絡稱低速網,在Mb/s—Gb/s 範圍的網稱高速網。也可以將Kb/s 網稱低速網,將Mb/s網稱中速網,將Gb/s網稱高速網。
網絡的傳輸速率與網絡的帶寬有直接關係。帶寬是指傳輸信道的寬度,帶寬的單位是Hz(赫茲)。按照傳輸信道的寬度可分爲窄帶網和寬帶網。一般將KHz—MHz帶寬的網稱爲窄帶網,將MHz—GHz 的網稱爲寬帶網,也可以將kHz 帶寬的網稱窄帶網,將MHz 帶寬的網稱中帶網,將GHz 帶寬的網稱寬帶網。通常情況下,高速網就是寬帶網,低速網就是窄帶網。
⑶按傳輸介質分類
傳輸介質是指數據傳輸系統中發送裝置和接受裝置間的物理媒體,按其物理形態可以劃分爲有線和無線兩大類。
①有線網
傳輸介質採用有線介質連接的網絡稱爲有線網,常用的有線傳輸介質有雙絞線、同軸電纜和光導纖維。
●雙絞線是由兩根絕緣金屬線互相纏繞而成,這樣的一對線作爲一條通信線路,由四對雙絞線構成雙絞線電纜。雙絞線點到點的通信距離一般不能超過100m。目前,計算機網絡上使用的雙絞線按其傳輸速率分爲三類線、五類線、六類線、七類線,傳輸速率在10Mbps到600Mbps之間,雙絞線電纜的連接器一般爲RJ-45。
●同軸電纜由內、外兩個導體組成,內導體可以由單股或多股線組成,外導體一般由金屬編織網組成。內、外導體之間有絕緣材料,其阻抗爲50Ω。同軸電纜分爲粗纜和細纜,粗纜用DB-15連接器,細纜用BNC和T 連接器。
●光纜由兩層折射率不同的材料組成。內層是具有高折射率的玻璃單根纖維體組成,外層包一層折射率較低的材料。光纜的傳輸形式分爲單模傳輸和多模傳輸,單模傳輸性能優於多模傳輸。所以,光纜分爲單模光纜和多模光纜,單模光纜傳送距離爲幾十公里,多模光纜爲幾公里。光纜的傳輸速率可達到每秒幾百兆位。光纜用ST 或SC 連接器。光纜的優點是不會受到電磁的干擾,傳輸的距離也比電纜遠,傳輸速率高。光纜的安裝和維護比較困難,需要專用的設備。
②無線網
採用無線介質連接的網絡稱爲無線網。目前無線網主要採用三種技術:微波通信,紅外線通信和激光通信。這三種技術都是以大氣爲介質的。其中微波通信用途最廣,目前的衛星網就是一種特殊形式的微波通信,它利用地球同步衛星作中繼站來轉發微波信號,一個同步衛星可以覆蓋地球的三分之一以上表面,三個同步衛星就可以覆蓋地球上全部通信區域。
⑷按拓撲結構分類
計算機網絡的物理連接形式叫做網絡的物理拓撲結構。連接在網絡上的計算機、大容量的外存、高速打印機等設備均可看作是網絡上的一個節點,也稱爲工作站。計算機網絡中常用的拓撲結構有總線型、星型、環型等。
①總線拓撲結構
總線拓撲結構是一種共享通路的物理結構。這種結構中總線具有信息的雙向傳輸功能,普遍用於局域網的連接,總線一般採用同軸電纜或雙絞線。
總線拓撲結構的優點是:安裝容易,擴充或刪除一個節點很容易,不需停止網絡的正常工作,節點的故障不會殃及系統。由於各個節點共用一個總線作爲數據通路,信道的利用率高。但總線結構也有其缺點:由於信道共享,連接的節點不宜過多,並且總線自身的故障可以導致系統的崩潰。
②星型拓撲結構
星型拓撲結構是一種以中央節點爲中心,把若干外圍節點連接起來的輻射式互聯結構。這種結構適用於局域網,特別是近年來連接的局域網大都採用這種連接方式。這種連接方式以雙絞線或同軸電纜作連接線路。
星型拓撲結構的特點是:安裝容易,結構簡單,費用低,通常以集線器(Hub)作爲中央節點,便於維護和管理。中央節點的正常運行對網絡系統來說是至關重要的。
③環型拓撲結構
環型拓撲結構是將網絡節點連接成閉合結構。信號順着一個方向從一臺設備傳到另一臺設備,每一臺設備都配有一個收發器,信息在每臺設備上的延時時間是固定的。
這種結構特別適用於實時控制的局域網系統。
環型拓撲結構的特點是:安裝容易,費用較低,電纜故障容易查找和排除。有些網絡系統爲了提高通信效率和可靠性,採用了雙環結構,即在原有的單環上再套一個環,使每個節點都具有兩個接收通道。環型網絡的弱點是,當節點發生故障時,整個網絡就不能正常工作。
OSI 的七層體系結構:
應用層
表示層
會話層
運輸層
網絡層
數據鏈路層
物理層
通常有兩種:
• 客戶機/服務器(Client/Server):
提供資源並管理資源的計算機稱爲服務器;使用共享資源的計算機稱客戶機;
• 對等(Peer-to-Peer):
不使用服務器來管理網絡共享資源,所以的計算機處於平等的地位。
又稱國際互聯網,規範的譯名是“因特網”,指當前各國、各地區衆多開發的網絡連接在一起而形成的全球性網絡。
• 我國Internet的發展情況:
八十年代末,九十年代初才起步。
1989年我國第一個公用分組交換網CNPAC建成運行。
• 我國已陸續建成與Internet互聯的四個全國範圍的公用網絡:
中國公用計算機互聯網(CHINANET)、中國金橋信息網(CHINAGBN)
中國教育和科研計算機網(CERNET)、中國科學技術網(CSTNET)
我們把整個Internet看作一個單一的、抽象的網絡,所謂IP地址,就是爲Internet中的每一臺主機分配一個在全球範圍唯一地址。IP v4地址是由32位二進數碼錶示的,爲方便記記憶,把這32位二進制數每8個一段用“.” 隔開,再把每一段的二進制數化成十進制數,也就得到我們現在所看到的IP地址形式。
IP地址是用“.”隔開地四個十進制整數,每個數字取值爲0—255。
IP地址分A、B、C、D;E五類,目前大量使用的是A、B、C三類,D類爲Internet體系結構委員會IAB專用,E類保留在今後使用。
最高位1…126爲A類,128…191是B類,192…223是C類。
-
域名 :
- 域名地址採用層次結構,一個域名一般有3-5個子段,中間用“. ”隔開。IP地址作爲Internet 上主機的數字標識,對計算機網絡來說是非常有效的。但對於使用者來說,很難記憶這些由數字組成的IP地址了。爲此,人們研究出一種字符型標識,在Internet上採用“名稱”尋址方案,爲每臺計算機主機都分配一個獨有的“標準名稱”,這個用字符表示的“標準名稱”就是我們現在所廣泛使用的域名(DN,domain name)。因此主機的域名和IP地址一樣,也採用分段表示的方法。其結構一般是如下樣式:計算機名.組織結構名.網絡名.最高層域名。
頂級域名有三類:
• 國家頂級域名,如cn(中國)、us(美國)、uk(英國);
• 國際頂級域名—— int ,國際性組織可在int 下注冊;
• 通用頂級域名,如:com、net、edu、gov、org、……
有了域名標識,對於計算機用戶來說,在使用上的確方便了很多。但計算機本身並不能自動識別這些域名標識,於是域名管理服務器DNS(domain name system)就應運而生了。所謂的域名管理系統DNS(domain name system)就是以主機的域名來代替其在Internet 上實際的IP 地址的系統,它負責將Internet 上主機的域名轉化爲計算機能識別的IP 地址。從DNS 的組織結構來看,它是一個按照層次組織的分佈式服務系統;從它的運行機制來看,DNS 更像一個龐大的數據庫,只不過這個數據庫並不存儲在任一計算機上,而是分散在遍佈於整個Internet上數以千計的域名服務器中而已。
通過上面的IP 地址、域名DN 和域名管理系統DNS,就把Internet 上面的每一臺主機給予了唯一的定位。三者之間的具體聯繫過程如下:當連接網絡並輸入想訪問主機的域名後,由本地機向域名服務器發出查詢指令,域名服務器通過連接在整個域名管理系統查詢對應的IP 地址,如找到則返回相應的IP 地址,反之則返回錯誤信息。說到這裏,想必大家都明白了爲什麼當我們在瀏覽時,瀏覽器左下角的狀態條上會有這樣的信息:“正在查找xxxxxx”、“xxxxxx已經發現,正在連接xxxxxx”,其實這也就是域名通過DNS 轉化爲IP地址的過程。
當然域名通過DNS轉化爲IP地址需要等待一段時間,因爲如果你所使用的域名服務器上如果沒有你所需要域名的對應IP 地址,它就會向上級域名服務器查詢,如此類推,直至查到結果,或返回無效信息。一般而言,這個查詢過程都非常短,你很難察覺到。
-
Internet(譯爲因特網或國際互聯網)的服務與工具
Internet的服務有:電子郵件、遠程登陸、文件傳輸、信息服務等;
• 電子郵件(E-Mail):電子郵件地址格式爲:
收信人郵箱名@郵箱所在主機的域名。例:[email protected] ,[email protected]
• 遠程登陸(Telnet):指通過Internet與其它主機連接。
登陸上另一主機,你就可以使用該主機對外開放的各種資源,如聯機檢索、數據查詢。
• 文件傳輸(FTP):用於在計算機間傳輸文件。如下載軟件等。 -
全球信息網(WWW-World Wide Web):
又稱萬維網,是一個全球規模的信息服務系統,由遍佈於全世界的數以萬計的Web站點組成。