求二、八、十、十六进制的转换算法

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-07
求二,八,十,十六进制数之间的转换算法

2变10:举例:1111 1*2的3次方+1*2的2次方+1*2的1次方+1*2的0次方=15
2变8:1111:从右向左数,每三位隔一个逗号,最左面不足三位在他的左面补0.然后每三位按十进制方法转换
001,111=1*2的0次方,1*2的2次方+1*2的1次方+1*2的0次方
再把逗号去掉,就是8进制数,为17
2变16:与上方法相同,不过要每隔4位点一个逗号.还有就是16制的10--15表示方法为A,B,C,D,E,F

10进制转2进制,利用竖式来算,图片中是231变成2进制,每除一步会有一个余数(0或者1),写在右边,算完后,从下向上,就是二进制表示,转换结果为100110111,我举的例子有点不是太合适,超过255了,结果就大于一个字节能表示的范围了。从二进制到8进制和16进制就比较容易了,8进制每位对应3位2进制,16进制每位对应4位二进制;
八进制对二进制:1:001;2:010;3:011;4:100;5:101;6:110;7:111
16进制对二进制:1:0001;2:0010;3:0011;4:0100;5:0101;6:0110;7:0111;8:1000;9:1001;A:1010;B:1011;C:1100;D:1101;E:1110;F:1111
转换到10进制:二进制的每一位乘此位的2的指数,然后所有的相加,例如:111001B=1X2的5次方+1X2的4次方+1X2的三次方+0X2的2次方+0X2的1次方+0X2的0次方
其他进制转换参照2进制方法

一般说来,如果数制只采用R个基本符号,则称为基R数值,R称为数制的基数,而数制中每一固定位置对应的单位值称为权。
进制 基数R 基本符号
二进制 2 0,1
八进制 8 0,1,2,3,4,5,6,7
十进制 10 0,1,2,3,4,5,6,7,8,9
十六进制 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F(A—F对应十进制数的10—15)

1、R进制转换为十进制
基数为R的数字,只要将各位数字与它的权相乘,其积相加,和数就是十进制数
例:
3506.2 (8进制)
=3×83+5×82+0×81+6×80+2×8-1
=1862.25
例:
0.2A (16进制)
=2×16-1+10×16-2
=0.1640625

2、十进制转换为R进制
+进制整数转换成R进制的整数: 除R取余(余数部分),得到的余数反着看。
例:将123(10)转换成二进制数
123/2 =61......1 1
61/2 =30......1 1
30/2=15......0 0
15/2=7......1 1
7/2=3......1 1
3/2=1......1 1
1/2=0......1 1
1101111反着看,就是1111011
所以123(10)=1111011(2)

十进制小数转换成R进制时: 乘R取整(整数部分),如果整数变成1了,取了1后,再变成0,继续往下乘,得到的整数正着看。
例:将0.3125(10)转换成二进制数
0.3125×2 =0.625 0
0.625×2 =1.25 1
0.25×2=0.5 0
0.5×2 =1.0 1
所以0.3125(10)=0.0101(2)

3、二、八、十六进制的相互转换
每位八进制数相当于三位二进制数,每位十六进制数相当于四位二进制数。
在转换时,位组划分是以小数点为中心向左右两边延伸,中间的0不能省略,两头不够时可以补0。尤其是小数后末尾的0。
例如:
将1011010.1(2)转换成八进制和十六进制数
001 011 010. 100 1011010.1(2)=132.4(8)
1 3 2 . 4
0101 1010. 1000 1011010.1(2)=5A.8(16)
5 A . 8
将十六进制数F7.28变为二进制数
F 7 . 2 8 F7.28(16)=11110111.00101(2)
1111 0111.0010 1000
希望我的回答能帮到你。有不懂的地方再问哦

变10:举例:1111 1*2的3次方+1*2的2次方+1*2的1次方+1*2的0次方=15
2变8:1111:从右向左数,每三位隔一个逗号,最左面不足三位在他的左面补0.然后每三位按十进制方法转换
001,111=1*2的0次方,1*2的2次方+1*2的1次方+1*2的0次方
再把逗号去掉,就是8进制数,为17
2变16:与上方法相同,不过要每隔4位点一个逗号.还有就是16制的10--15表示方法为A,B,C,D,E,F

  • 求二、八、十、十六进制的转换算法
    答:=3×83+5×82+0×81+6×80+2×8-1 =1862.25 例:0.2A (16进制)=2×16-1+10×16-2 =0.1640625 2、十进制转换为R进制 +进制整数转换成R进制的整数: 除R取余(余数部分),得到的余数反着看。例:将123(10)转换成二进制数 123/2 =61...1 1 61/2 =30...1 1 3...
  • 2、8、10、16进制的转换方法
    答:有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数。个位,N=1;十位,N=2...举例:110B=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6D 110Q=1*8的2次方+1*8的1次方+0*8的0次方=64+8+0=72D 110H=1...
  • 二进制转八进制、十六进制、十进制怎么算
    答:1、二进制转为八进制 110110010.100101(2)→110'110'010.100'101(2)=662.45(8)。2、二进制转为十进制 110110010.100101(2)=1*2^8+1*2^7+0*2^6+1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+0*2^0+1*2^(-1)+0*2^(-2)+0*2^(-3)+1*2^(-4)+0*2^(-5)+1*2^(-...
  • 二、八、十、十六进制之间的转换公式
    答:一、十进制转换成其他进制 1、转换二进制:十进制数除二,然后取余数,倒序。 例:55除2后余111011,然后倒序输出为:110111 2、转换八进制:十进制数除八,然后取余数,倒序输出。 例:128除8后余002,然后倒序输出为:200 3、转换十六进制:十进制数除十六,然后取余数,倒序输出。 例:125除16...
  • 二进制八进制十进制十六进制转换~C语言~
    答:1.二进制转八进制 方法:从低位到高位,每三位为一组,转换为相对应的十进制的数。例如:100111011 100|111|011:分为3组,100对应十进制数是4,111对应十进制数是7,011对应十进制数是3 最后结果为:473 2。八进制转二进制 方法:从高位到低位,每位上的数字转化成对应的三位二进制数字。例如...
  • 2、8、10、16进制转换算法问题!?
    答:八进制的基R=8=2^3,有数码0、1、2、3、4、5、6、7,并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。 例如:二进制数据 ( 11 101 010 . 010 110 1 )2 对应 八进制数据 ( 3 5 2 . 2 6 4 )8 十六进制数 由于二进制数在使用中位数太长,不容易记忆,所以又...
  • 2、8、10、16进制之间的转换
    答:八进制转换成十六进制算法通常有两种方法:1、先将八进制转换成二进制,再将二进制转换成十六进制 2、先将八进制转换成十进制,再将十进制转换成十六进制 十六进制转二进制:十六进制数通过除2取余法,得到二进制数,每个十六进制对应四个二进制,不足时在最左边补充零。【例】:0x8F 8 F 1000 ...
  • 二进制,八进制,十进制,十六进制数之间的相互转换。 怎么做,并麻烦举个...
    答:1) 十进制转换为二进制,需要分成整数和小数两个部分分别转换 2) 当转换整数时,用的除2取余法,而转换小数时候,用的是乘2取整法 3) 注意他们的读数方向 因此,我们从上面的方法,我们可以得出十进制数168.125转换为二进制为10101000.001,或者十进制数转换为二进制数约等于10101000.0111。 (3) 二进制转换为十进制 ...
  • 计算机二进制,十进制,八进制,十六进制怎么转换
    答:00111(二进制)= 0 * 2^(5-1) + 0 * 2^(4-1) + 1 * 2^(3-1) + 1 * 2^(2-1) + 1 * 2^(1-1)= 0 * 16 + 0 * 8 + 1 * 4 + 1 * 2 + 1 * 1 = 7(十进制)2、十进制转换为二进制 十进制整数到二进制整数的转换可以采用“除2取余,逆序输出”法,具体...
  • 哪位大侠教一下二进制,八进制,十进制,十六进制是怎么转化的。
    答:99:二进制是1100011八进制是143十六进制是63113:11000116171127:100100111447127192:11000000300C0324:101000100504144 算法: 十进制与二进制转换之相互算法 十进制转二进制: 用2辗转相除至结果为1 将余数和最后的1从下向上倒序写就是结果 例如302 302/2=151余0 151/2=75余1 75/2=37余1 37/2=18余1...