求进制转换的详细过程

如题所述

十进制--->二进制
对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。

对于小数部分,采用连续乘以基数2,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称"乘基取整法"。
给你一个十进制,比如:6,如果将它转换成二进制数呢?
10进制数转换成二进制数,这是一个连续除以2的过程:
把要转换的数,除以2,得到商和余数,
将商继续除以2,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。
听起来有些糊涂?结合例子来说明。比如要转换6为二进制数。
"把要转换的数,除以2,得到商和余数"。
那么:十转二示意图要转换的数是6, 6 ÷ 2,得到商是3,余数是0。
"将商继续除以2,直到商为0……"
现在商是3,还不是0,所以继续除以2。
那就: 3 ÷ 2, 得到商是1,余数是1。
"将商继续除以2,直到商为0……"
现在商是1,还不是0,所以继续除以2。
那就: 1 ÷ 2, 得到商是0,余数是1
"将商继续除以2,直到商为0……最后将所有余数倒序排列"
好极!现在商已经是0。
我们三次计算依次得到余数分别是:0、1、1,将所有余数倒序排列,那就是:110了!
6转换成二进制,结果是110。

二进制--->十进制
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
所以,设有一个二进制数:0110 0100,转换为10进制为:
下面是竖式:
0110 0100 换算成十进制
第0位 0 * 2 = 0
第1位 0 * 2 = 0
第2位 1 * 2 = 4
第3位 0 * 2 = 0
第4位 0 * 2 = 0
第5位 1 * 2 = 32
第6位 1 * 2 = 64
第7位 0 * 2 = 0
公式:第N位2
---------------------------
100
用横式计算为:
0 * 2 + 0 * 2 + 1 * 2 + 0 * 2 + 0 * 2 + 1 * 2 + 1* 2 + 0 * 2 = 100
0乘以多少都是0,所以我们也可以直接跳过值为0的位:
1 * 2 + 1 * 2 +1*2 = 100

十进制--->八进制
10进制数转换成8进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成8。

八进制--->十进制
八进制就是逢8进1。八进制数采用 0~7这八数来表达一个数。八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……所以,设有一个八进制数:1507,转换为十进制为:用竖式表示:1507换算成十进制。第0位 7 * 8 = 7第1位 0 * 8 = 0第2位 5 * 8 = 320第3位 1 * 8 = 512--------------------------839同样,我们也可以用横式直接计算:7 * 8 + 0 * 8 + 5 * 8 + 1 * 8 = 839结果是,八进制数 1507 转换成十进制数为 839
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-11-24
题目量有点大,如果详细地讲的话!

其实,无论是二进制、八进制、十六进制,还是我们常见的 十进制,都符合相同的规律。比如:(其中 a、b、c、d、e 是某位上的一个整数,n 是进制数)

(abc.de)n = a × n^(2) + b × n^1 + c × n^0 + d × n^(-1) + e × n^(-2)
所以:
(1101)2 = 1×2^3 + 1×2^2 + 0×2^1 +1×2^0 = 8 + 4 + 0 + 1 = (13)10
(157)8 = 1×8^2 + 5×8^1 + 7×8^0 = 64 + 40 + 7 = (111)10
(2B6)16 = 2×16^2 + 11×16^1 + 6×16^0 = 512 + 156 + 6 = (674)10
二进制转化成八进制,以小数点为界:小数点前面向左,每3位作为一个数;小数点后面向右,也是每3位作为一个数。不足的部分向后补0:
(11110.11101)2 = (11,110.111,010)2 = (36.72)8
十六进制转化成八进制比较麻烦,还是先转化成二进制,再转化成八进制更方便些:
(F6.B8)H =(1111,0110.1011,1000)2 = (11,110,110.101,110,000)2 = (366.560)8
十进制转化为 2 进制、8进制16进制,小数前面的整数部分就用相应的 2、8 或 16去除。从后向前依次记下余数,然后继续用相应的 2、8 或 16去除所得的商数。直到最后一个余数为止;
对于小数点后面的数,就用小数部分去乘以相应的 2、8 或 16。然后从左向右依次记下所得数的整数部分。然后继续用相应的 2、8 或 16 去乘以所得的积的小数部分。直到最后小数部分为0 或达到相应的精度位数。
(268.5)10 = (268)10 + (0.5)10

= (256 + 12)10 + [8×16^(-1)]10
= (1×16^2 + 0×16^1 + 12×16^0)10 + (0.8)H
= (10C)H + (0.8)H
= (10C.8)H
(48.75)10 = (48)10 + (0.75)10
= (32 + 16)10 + (0.5 + 0.25)10
= (1×2^5 + 1×2^4+0×2^3 + 0×2^2+0×2^1+0×2^0)10 + [1×2^(-1) + 1×2^(-2)]10
= (11,0000)2+(0.11)2
= (11,0000.11)2本回答被提问者采纳
第2个回答  2020-11-24
为什么要用到二进制?
数字电路非常广泛,小到逻辑门电路,大到超大规模集成电路,手机,电脑,智能设备……数字信号即可以表示数字,也可以表示非数值的信息,如文字,声音,图片,视频。如何将这些非数值类的信息 变成 二进制信号呢?这就涉及到编码制度,即将信息通过编码的方式转成二进制值,如 MP3、MP4、midi、jpg、gif 等等

从可行性来说,采用二进制,只有 0 和 1 两个状态,能够表示 0 和 1 两种状态的电子器件有很多,比如开关的接通和断开、晶体管的导通和截止、磁原件的正负剩磁、电位电平的高低等都可以表示 0 和 1 两个数。使用二进制,电子器件具有实现的可行性。

从运算的简易性来说,二进制的运算法则少,运算简单,使计算机运算器的硬件结构大大简化(十进制乘法九九口诀有 55 条公式,而二进制乘法只有四条规则)。

从逻辑上讲,由于二进制 0 和 1 正好和逻辑代码假和真相对应,有逻辑代数的理论基础,用二进制表示二值逻辑很自然。 -摘自计算机为什么是二进制?

十进制是“十进”,采用的是“个/十/百/千/万...”的进位递增
二进制是“二进”,采用的是“1/2/4/8/16/...”的进位递增

基数和位权
在十进制系统中(基数 10),数4327.13表示[公式] ,其中的 10 就是我们所说的基数,基数在不同数制转换中起着重要作用。我们用数字我们知道多位数有很多位,有十位、百位和千位,处在每个位上的单位1表示的数值大小不同,十位上的数字1代表 10 ,百位上的数字 1 代表 100,以此类推,故我们称[公式]为位权 ,也称比重 (以 10 进制为例)

常见的进制
计算机中的任何数据都可以用一串 0 或 1 来表示,但考虑到二进制数位太长,所以我们也可以采用八进制和十六进制来表示数值数据。为了避免出现误会,在给出一个数的同时就必须指明这个数的数制,例如:(1010)2、(1010)8、(1010)10、(1010)16所代表的数值就不同。除了用下标来表示不同的数制以外,在计算机中还常用后缀字母来表示不同的数制。后缀 B 表示这个数是二进制数(Binary);后缀 Q 表示这个数是八进制数(Octal),本来八进制数的英文单词的第一个字母应当是 O,因为字符 O 与数字 0 太容易混淆,所以常使用字符 Q 作为八进制数的后缀;后缀 H 表示这个数是十六进制数(Hexadecimal);而后缀 D 表示这个数是十进制数(Decimal)。十进制数在书写时后缀 D 可以省略,其他进制在书写时后缀一般不可省略。例如:有 4 个数分别为 375D、101B、76Q、A17H,从后缀字母就可以知道它们分别是十进制数、二进制数、八进制数和十六进制数。
相似回答