-9 逆序输出一个整数的各位数字_计算机基础知识: 信息数字化
計算機、數據與信息
無符號位數的表示
(一)、四種常用的數制及它們之間的相互轉換:
進制 | 基數 | 基數個數 | 權 | 進數規律 |
十進制 | 0、1、2、3、4、5、6、7、8、9 | 10 | 10i | 逢十進一 |
二進制 | 0、1 | 2 | 2i | 逢二進一 |
八進制 | 0、1、2、3、4、5、6、7 | 8 | 8i | 逢八進一 |
十六進制 | 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F | 16 | 16i | 逢十六進一 |
注意:在進行十六進制運算時,A、B、C、D、E、F六個字母要化成對應的十進制數:
10、11、12、13、14、15,詳見后面例題。
十進制、二進制、八進制與十六進制數字對照表(要求熟記于心)
十進制 | 二進制 | 八進制 | 十六進制 |
0 | 0000 | 0 | 0 |
1 | 0001 | 1 | 1 |
2 | 0010 | 2 | 2 |
3 | 0011 | 3 | 3 |
4 | 0100 | 4 | 4 |
5 | 0101 | 5 | 5 |
6 | 0110 | 6 | 6 |
7 | 0111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
十進制數轉換為二進制數、八進制數、十六進制數的方法:
整數轉換方法:除基反取余法
小數轉換方法:乘基取整法
二進制數、八進制數、十六進制數轉換為十進制數的方法:按權展開求和法
1.二進制與十進制間的相互轉換:
?(1)二進制轉十進制
方法:“按權展開求和”
?? 例:? (1011.01)2=(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10
=(8+0+2+1+0+0.25)10
=(11.25)10
規律:個位上的數字的次數是0,十位上的數字的次數是1,......,依獎遞增,而十分位的數字的次數是-1,百分位上數字的次數是-2,......,依次遞減。
??????? 注意:不是任何一個十進制小數都能轉換成有限位的二進制數。
(2)十進制轉二進制
· 十進制整數轉二進制數:“除以2取余,逆序輸出”(短除反取余法)
??????????例:(89)10=(1011001)2
2??????89
2????? 44????? ……1
2???? 22?????? ……0
2???? 11?????? ……0
2??? 5?????? ……1
2??? 2??? ??? ……1
2? 1??? ??? ……0
0??? ??? ……1
· 十進制小數轉二進制數:“乘以2取整,順序輸出”(乘2取整法)
??例:? (0.625)10= (0.101)2
?????????????? 0.625
????X???????????? 2?
?????????????? 1.25??????? 1
???X???????????? 2?
?????????????? 0.5???????? 0
X??????????? 2?
?????????? 1.0???????? 1
2.八進制與二進制的轉換:
二進制數轉換成八進制數:從小數點開始,整數部分向左、小數部分向右,每3位為一組用一位八進制數的數字表示,不足3位的要用“0”補足3位,就得到一個八進制數。
八進制數轉換成二進制數:把每一個八進制數轉換成3位的二進制數,就得到一個二進制數。
例:將八進制的37.416轉換成二進制數:
3???7?? . 4??? 1???6
011?111? .100? 001? 110
即:(37.416)8 =(11111.10000111)2
例:將二進制的10110.0011 轉換成八進制:
?0 1 0? 11 0 . 0 0 1 1 0 0??
2??? 6?.? 1??? 4
????? 即:(10110.011)2= (26.14)8
3.十六進制與二進制的轉換:
二進制數轉換成十六進制數:從小數點開始,整數部分向左、小數部分向右,每4位為一組用一位十六進制數的數字表示,不足4位的要用“0”補足4位,就得到一個十六進制數。
十六進制數轉換成二進制數:把每一個八進制數轉換成4位的二進制數,就得到一個二進制數。
例:將十六進制數5DF.9 轉換成二進制:
???5??? D???? F? . 9
???0101? 1101? 1111 .1001
???即:(5DF.9)16=(10111011111.1001)2
例:將二進制數1100001.111 轉換成十六進制:
????0110? 0001? . 1110
?????6???? 1??? .? E
??即:(1100001.111)2=(61.E)16
注意:以上所說的二進制數均是無正、負符號的數。這些數的范圍如下表:
無符號位二進制數位數 | 數值范圍 | 十六進制范圍表示法 |
8位二進制數 | 0~255? (255=28-1) | 00~0FFH |
16位二進制數 | 0~65535 (65535=216-1) | 0000H~0FFFFH |
32位二進制數 | 0~232-1 | 00000000H~0FFFFFFFFH |
符號位數的表示
一、符號數的機器碼表示方法
1.帶符號二進制數的表示方法:
帶符號二進制數用最高位的一位數來表示符號:0表示正,1表示負。
含符號位二進制數位數 | 數值范圍 | 十六進制范圍表示法 |
8位二進制數 | -128 ~ +127 | 80H~7FH |
16位二進制數 | -32768 ~ ?+32767 | 8000H~7FFFH |
32位二進制數 | -2147483648 ?~ +2147483647 | 80000000H~7FFFFFFFH |
2、符號位的機器碼表示:
1)機器數和真值
數在計算機中的表示形式統稱為機器數,它有兩上特點:其一,數的符號數值化;其二,二進制數的位數受計算機設備字長的限制。
字長:機器內部一次能表示的二進制位數由機器的字長,字長8位叫一個字節(Byte),一般機器字長都是字節的整數倍,如字長8位、16位、32位、64位等。
機器數的真值:指帶符號位的機器數所對應的十進制數值;如符號數01001B,11011B的真值分別是+9和-11。
2)最常用的機器數的表示方法:原碼、反碼和補碼。
(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
設[x]原=,則當x0=0時,[x]反=[x]原=,
當x0=1時,[x]反=[x]原=。
例:,,求和。
解:=,=
(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)
??? 計算機處理的數據不僅有符號,而且大量的數據帶有小數,小數點不占有二進制一位而是隱含在機器數里某個固定位置上。通常采取兩種簡單的約定:一種是約定所有機器數的小數的小數點位置隱含在機器數的最低位之后,叫定點純整機器數,簡稱定點整數。如
0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 |
小數點位置
??? 若有符號位,符號位仍在最高位。因小數點隱含在數的最低位之后,所以上數表示+1011001B。另一種約定所有機器數的小數點隱含在符號位之后、有效部分最高位之前,叫定點純小數機器數,簡稱定點小數,例如
1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 |
小數點位置
最高位是符號,小數點在符號位之后,所以上數表示 -0.0101101B。
??? 無論是定點整數,還是定點小數,都可以有原碼、反碼和補碼三種形式。例如定點小數
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
如果這是個原碼表示的定點小數,[x]原=11110000B,則x= -0.111B=-0.875D,如這是補碼表示的定點小數,[x]補=11110000B,則[x]原=10010000B,則x= -0.001B=-0.125D。(想一想,如何由補碼求原碼?)
(二)浮點數(Floating-Point Number)
??? 計算機多數情況下采作浮點數表示數值,它與科學計數法相似,把一個二進制數通過移動小數點位置表示成階碼和尾數兩部分:
??? 其中:E——N的階碼(Expoent),是有符號的整數
??????? ?S——N的尾數(Mantissa),是數值的有效數字部分,一般規定取二進制定點純小數形式。
例:1011101B=2+7*0.11101,101.1101B=2+3*0.1011101,0.01011101B=2-1*1011101
??? 浮點數的格式如下:
E0 | E1E2……………En | E0 | E1E2……………En |
????????????????? 階符??????? 階??????????? 尾符?????? 尾數????????????????
??? 浮點數由階碼和尾數兩部分組成,底數2在機器數中不出現,是隱含的。階碼的正負符號E0,在最前位,階反映了數N小數點的位置,常用補碼表示。二進制數N小數點每左移一位,階增加1。尾數是這點小數,常取補碼或原碼,碼制不一定與階碼相同,數N的小數點右移一位,在浮點數中表現為尾數左移一位。尾數的長度決定了數N的精度。尾數符號叫尾符,是數N的符號,也占一位。
例:寫出二進制數-101.1101B的浮點數形式,設階碼取4位補碼,尾數是8位原碼。
-101.1101=-0.1011101*2+3
浮點形式為:
?????????????? 階碼0011?? 尾數11011101
補充解釋:階碼0011中的最高位“0”表示指數的符號是正號,后面的“011”表示指數是“3”;尾數11011101的最高位“1”表明整個小數是負數,余下的1011101是真正的尾數。
浮點數運算后結果必須化成規格化形式,所謂規格化,是指對于原碼尾數來說,應使最高位數字S1=1,如果不是1且尾數不是全0時就要移動尾數直到S1=1,階碼相應變化,保證N值不變。
例:計算機浮點數格式如下,寫出x=0.0001101B的規格化形式,階碼是補碼,尾數是原碼。
x=0.0001101=0.1101*10-3
又[-3]補=[-001B]補=[1011]補=1101B
所以? 規格化浮點數形式是?
1 | 101 | 0 | 1101000 |
三、ASCII碼 ( American Standard Code forInformation Interchange )
美國標準信息交換代碼
???將每個字符用7位的二進制數來表示,共有128種狀態
大小字母、0…9、其它符號、控制符
‘ 0 ’? ――? 48
‘ A ’ ――? 65
‘ a ’? ――? 97
漢字信息編碼
1.漢字輸入碼
漢字輸入方法大體可分為:區位碼(數字碼)、音碼、形碼、音形碼。
· 區位碼:優點是無重碼或重碼率低,缺點是難于記憶;
· 音碼:優點是大多數人都易于掌握,但同音字多,重碼率高,影響輸入的速度;
· 形碼:根據漢字的字型進行編碼,編碼的規則較多,難于記憶,必須經過訓練才能較好地掌握;重碼率低
· 音形碼:將音碼和形碼結合起來,輸入漢字,減少重碼率,提高漢字輸入速度;
2.漢字交換碼
漢字交換碼是指不同的具有漢字處理功能的計算機系統之間在交換漢字信息時所使用的代碼標準。自國家標準GB2312-80公布以來,我國一直延用該標準所規定的國標碼作為統一的漢字信息交換碼。
GB2312-80標準包括了6763個漢字,按其使用頻度分為一級漢字3755個和二級漢字3008個。一級漢字按拼音排序,二級漢字按部首排序。此外,該標準還包括標點符號、數種西文字母、圖形、數碼等符號682個。
區位碼的區碼和位碼均采用從01到94的十進制,國標碼采用十六進制的21H到73H(數字后加H表示其為十六進制數)。區位碼和國標碼的換算關系是:區碼和位碼分別加上十進制數32。如“國”字在表中的25行90列,其區位碼為2590,國標碼是397AH。
* 由于GB2312-80是80年代制定的標準,在實際應用時常常感到不夠,所以,建議處理文字信息的產品采用新頒布的GB18030信息交換用漢字編碼字符集,這個標準繁、簡字均處同一平臺,可解決兩岸三地間GB碼與BIG5碼間的字碼轉換不便的問題。
3.字形存儲碼
字形存儲碼是指供計算機輸出漢字(顯示或打印)用的二進制信息,也稱字模。通常,采用的是數字化點陣字模。如下圖:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | |
1 | ||||||||||||||||
2 | ||||||||||||||||
3 | ||||||||||||||||
4 | ||||||||||||||||
5 | ||||||||||||||||
6 | ||||||||||||||||
7 | ||||||||||||||||
8 | ||||||||||||||||
9 | ||||||||||||||||
10 | ||||||||||||||||
11 | ||||||||||||||||
12 | ||||||||||||||||
13 | ||||||||||||||||
14 | ||||||||||||||||
15 | ||||||||||||||||
16 |
一般的點陣規模有16×16,24×24,32×32,64×64等,每一個點在存儲器中用一個二進制位(bit)存儲。例如,在16×16的點陣中,需16×16=8×32 bit 的存儲空間,每8bit為1字節,所以,需32字節的存儲空間。在相同點陣中,不管其筆劃繁簡,每個漢字所占的字節數相等。
為了節省存儲空間,普遍采用了字形數據壓縮技術。所謂的矢量漢字是指用矢量方法將漢字點陣字模進行壓縮后得到的漢字字形的數字化信息。
4.其它信息的數字化
1)、圖像信息的數字化
一幅圖像可以看作是由一個個像素點構成,圖像的信息化,就是對每個像素用若干個二進制數碼進行編碼。圖像信息化后,往往還要進行壓縮。
圖像文件的后綴名有:bmp、gif、jpg等;
2)、聲音信息的數字化
自然界的聲音是一種連續變化的模擬信息,可以采用A/D轉換器對聲音信息進行數字化。
聲音文件的后綴名有:wav、mp3、mid等;
3)、視頻信息的數字化
視頻信息可以看成連續變換的多幅圖像構成,播放視頻信息,每秒需傳輸和處理25幅以上的圖像。視頻信息數字化后的存儲量相當大,所以需要進行壓縮處理。
視頻文件后綴名有:avi、mpg等;
總結
以上是生活随笔為你收集整理的-9 逆序输出一个整数的各位数字_计算机基础知识: 信息数字化的全部內容,希望文章能夠幫你解決所遇到的問題。

- 上一篇: centos7 yum源_搭建内网Lin
- 下一篇: 能量时域空间物理_5G新在哪儿(11)-