- C語言程序設計簡明教程:Qt實戰
- 彭凌西 唐春明等編著
- 1426字
- 2022-04-26 17:57:41
1.1 認識計算機
計算機(Computer)是一種用于高速計算的電子計算機器,它既可以進行數值計算,又可以進行邏輯計算,還具有存儲記憶功能。計算機是能夠按照程序運行,自動、高速處理海量數據的現代化智能電子設備。計算機的外觀如圖1-1所示。
計算機是20世紀最重要的科學技術發明之一,對人類的生產活動和社會活動產生了極其深遠的影響,并以強大的生命力飛速發展。計算機的發明者馮·諾依曼(von Neumann)在1945年3月與他人起草了一個全新的“存儲程序通用電子計算機方案”——EDVAC(Electronic Discrete Variable Automatic Computer),這一方案也被稱為馮·諾依曼體系結構。馮·諾依曼體系結構至今仍為電子計算機設計者所遵循,其主要思想是計算機硬件系統由存儲器、控制器、運算器、輸入設備和輸出設備5個基本部分組成,各基本部分的功能如下。
● 存儲器不僅能存放數據,而且能存放指令。兩者在形式上沒有區別,但計算機能區分是數據還是指令。
圖1-1 計算機的外觀
● 控制器能自動取出指令并執行。
● 運算器能進行加、減、乘、除4種基本算術運算,還能進行一些邏輯運算和附加運算。
● 操作人員可以通過輸入設備、輸出設備和主機進行通信。
計算機硬件系統的基本組成及工作原理如圖1-2所示。
圖1-2 計算機硬件系統的基本組成及工作原理
計算機內部以二進制表示指令和數據,其中數據只用0和1的二項式序列表示,即{0,1},n為正整數。每條指令由操作碼和地址碼兩部分組成。操作碼指出操作類型,地址碼指出操作數的地址。計算機采用“存儲程序”工作方式。
通常將運算器和控制器統稱為中央處理器(Central Processing Unit,CPU)。CPU是整個計算機的核心部件,是計算機的“大腦”,控制計算機的運算、處理、輸入和輸出等工作。根據存儲器與CPU聯系的密切程度,可將其分為內存儲器(主存儲器)和外存儲器(輔助存儲器,如硬盤、U盤等)兩大類。內存儲器(斷電后數據會丟失)在計算機主機內,直接與運算器、控制器交換信息。其容量雖小,但存取速度快,一般只存放那些正在運行的程序和待處理的數據。為擴大內存儲器的容量,引入了外存儲器(斷電后數據一般不會丟失)。外存儲器作為內存儲器的延伸,間接和CPU聯系,常用來存放一些系統必須使用,但又不急于使用的程序和數據。程序必須調入內存儲器方可執行。外存儲器存取速度慢,但存儲容量大,可以長時間保存大量信息。
二進制(Binary)是指在數學和數字電路中以2為基數的記數系統,用0或1來表示數據(因為計算機用高電平和低電平分別表示1和0)。每個二進制數占一位,即一個比特(binary digit,bit),每8個二進制數構成一個字節(Byte)。
一位二進制數1等于十進制數1,即一位二進制數能表示的最大十進制數為20=21?1=1,一位二進制數有0、1,對應十進制數為0、1,共21=2個一位二進制數。
兩位二進制數11等于十進制數3,即兩位二進制數能表示的最大十進制數為20+21=22?1=3,兩位二進制數有00、01、10、11,對應十進制數為0~3,共22=4個兩位二進制數。
三位二進制數111等于十進制數7,即三位二進制數能表示的最大十進制數為20+21+22=23?1=7,三位二進制數有000、001、010、011、100、101、110、111,對應十進制數為0~7,共23=8個三位二進制數。
……
依次類推,八位二進制數11111111等于十進制數255,即八位二進制數能表示的最大十進制數為20+21+22+23+24+25+26+27 = 28?1=255,它可表示十進制的0~255,共256個八位二進制數。由此可知,n位二進制數表示的最大十進制數為2n?1,共2n個n位二進制數。
除了二進制之外,計算機也經常使用十六進制(Hexadecimal,HEX),它在數學中是一種逢16進1的進位制。一般用數字0~9和字母A~F(或a~f)表示,其中A~F分別表示十進制數的10~15。
- Data Visualization with D3 4.x Cookbook(Second Edition)
- Git Version Control Cookbook
- JavaScript修煉之道
- Rust編程:入門、實戰與進階
- Android Application Development Cookbook(Second Edition)
- 手把手教你學C語言
- C#程序設計基礎:教程、實驗、習題
- 深入淺出Serverless:技術原理與應用實踐
- Corona SDK Mobile Game Development:Beginner's Guide(Second Edition)
- Python大學實用教程
- JavaScript+jQuery網頁特效設計任務驅動教程
- 小程序從0到1:微信全棧工程師一本通
- Python自然語言理解:自然語言理解系統開發與應用實戰
- 零基礎看圖學ScratchJr:少兒趣味編程(全彩大字版)
- Python Programming for Arduino