- C語言程序設計教程
- 何穎剛 林麗娜 唐基宏 葉曉紅
- 1186字
- 2019-10-12 16:40:27
1.1.2 進制轉換
在編寫指令之前需要了解,日常生活中使用的數據一般用十進制表示,而在計算機中所有的數據都使用二進制表示,但是為了書寫方便,也會采用八進制或者十六進制來表示。下面介紹數制的基本概念:
如果數制只使用R個基本符號表示數值,則稱為R進制,R稱為該進制的“基數”,數制中使用的基本符號稱為“數碼”,處于不同位置的數碼表示的值的大小不同,與它所在位置的“權”有關。以二進制為例:二進制的基數為2,在二進制中所有的數值只使用數碼“0”和“1”來表示。R進制運算規則與十進制運算規則一致,即采用“逢R進一”的進位規則,如二進制就是“逢二進一”,八進制就是“逢八進一”,十六進制就是“逢十六進一”。常見的進制數表示方法如表1-1所示。
表1-1 常用的幾種進制表示

不同進制之間需要進行相互轉換。在我們熟悉的十進制中,6318可以表示為:6318=6×103+3×102+1×101+8×100。這里的103,102,101,100就是各個位置的權,可見各個位置上的數字只要乘上它們各自的權之后相加,就能表示它的實際數值。
于是,R進制數只要按權展開之后相加,這就實現了R進制對十進制之間的轉換。
如:
(10011)B=(1×24+0×23+0×22+1×21+1×20)D=(16+2+1)D=(19)D
(536)O=(5×82+3×81+6×80)D=(320+24+6)D=(350)D
(ABC)H=(10×162+11×161+12×160)D=(2560+176+12)D=(2748)D
相反的,將十進制數轉換為R進制數時,可將此數分成整數與小數兩部分分別轉換,然后再拼接起來即可。
整數部分:采用“除R取余,末位取起”。即將十進制整數連續除以R取余數,直到商為0,從最后一個余數取起,結果即為所得R進制整數。
小數部分:采用“乘R取整,順序取起”。即將十進制小數不斷乘以R取整數,直到小數部分為0或達到要求的精度為止(小數部分可能永遠不會得到0);從第一個得到的整數取起,取有效精度,結果即為所得R進制小數。
例:將十進制數100.625轉換成對應的二進制數。


所以(100.625)10=(1100100.101)2
在程序設計過程中,有時候需要把字符(字母、數字和各種符號)也采用二進制編碼表示。用以表示字符的二進制編碼稱為字符編碼。計算機中最常用的字符編碼是ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼),被國際標準化組織指定為國際標準。ASCII碼有7位碼和8位碼兩種版本。國際通用的是7位ASCII碼,用7位二進制數表示一個字符的編碼,如附錄A所示。
從ASCII碼表中可以看出:有34個非圖形字符(又稱控制字符),其余94個可打印字符(又稱圖形字符)。在這些圖形字符中,從0~9、A~Z、a~z都是按順序排列的,且小寫字母比大寫字母的碼值大32,這有利于大、小寫字符之間的轉換。有些特殊的字符編碼是需要記憶的。例如:
“a”字符的編碼為1100001,對應的十進制數是97;則“b”的編碼值就是98;
“A”字符的編碼為1000001,對應的十進制數是65;則“B”的編碼值就是66;
“0”字符的編碼為0110000,對應的十進制數是48;則“1”的編碼就是49。
在計算機的內部用一個字節(8個二進制位)來存放一個7位ASCII碼,所以最高位為0。
- Visual FoxPro程序設計教程(第3版)
- Web Development with Django Cookbook
- Julia Cookbook
- 零基礎輕松學SQL Server 2016
- UML 基礎與 Rose 建模案例(第3版)
- Natural Language Processing with Java and LingPipe Cookbook
- Windows Embedded CE 6.0程序設計實戰
- 算法圖解
- 零基礎學C++(升級版)
- Learning C++ by Creating Games with UE4
- 軟件測試技術
- Google Adsense優化實戰
- 游戲設計的底層邏輯
- Vue.js 3.x高效前端開發(視頻教學版)
- Python數據可視化之matplotlib實踐