求高手详细讲解八进位制与二进位制数之间的转换原理?
1个回答
展开全部
求高手详细讲解八进位制与二进位制数之间的转换原理? 1、转换原则:
从后往前每一位按十进位制转化方式转化为三位二进位制数,缺位处用0补充。
2、转换举例:
例:将八进位制的37.416转换成二进位制数:
3 7 . 4 1 6
011 111 .100 001 110
即:37.416(8进位制) =11111.10000111(二进位制)
详细解答二进位制数转换成八进位制
二进位制转八进位制对照表
(000)B=(0)O
(001)B=(1)O
(010)B=(2)O
(011)B=(3)O
(100)B=(4)O
(101)B=(5)O
(110)B=(6)O
(111)B=(7)O
转换方法是:以小数点为界,分别向左右每三位二进位制数合成一位八进位制数,冲早不足三位者补0。
例如:
(111010011.100101)B ->(111 010 011.100 101)B = (723.45)O
(1001011.1101)B ->(001 001 011.110 100)B =(113.64)O
求二进位制八进位制十进位制16进位制之间的详细转换关系
16进位制 0 1 2 3 4 5 6 7 8 9 A B C D E F
10进位制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
这是16进位制转化10进位制的程式码。
我来几个例子吧:27(10进位制)=27/16=1余11,则用16进位制可表示为1B,即余数用程式码表示。
再说二进位制,其实也不难,再举个1101(二进位制)为例吧:1101转化为十进位制=1*2^3+1*2^2+0*2^1+1*2^0=13(其中“*”表示乘号,“^”表示乘方)
要是看不懂二进位制,再来举一例把:(就举十进位制中的315)
315/2=157余1
157/2=78余1
78/2=39余0
39/2=19余1
19/2=9余1
9/2=4余1
4/2=2余0
2/2=1余0
1/2=0余1
所以二进位制为100111011
(二进位制再转化为十进位制):100111011=1*2的八次方+1*2的五次方+1*2的四次方+1*2的三次方+1*2的一次方+1*2的零次方=315
还有不懂可以再问,我知道的一定帮你解答
十六进位制与八进位制 二进位制之间的详细转换过程
额,你只要把二进位制小数点为区分,然后二进位制到八进位制的话就以二进位制三个数为一组,这样化,二进位制到十六进位制就是以四个为一组,例如1011.1101化为八进位制,小数点后就是以110,然后还剩一个1就自己补0,补成100,这样化,所以得13.64啊……
八进位制数与二进位制数、十六进位制数之间的关系?
1。 十进位制
十进位制使用十个数字(0、1、2、3、4、5、6、7、8、9)记数,基数为10,逢十进一。
历史上第一台电子数字计算机ENIAC是一台十进位制机器,其数字以十进位制表示,并以十进位制形式运算。设计十进位制机器比设计二进位制机器复杂得多。而自然界具有两种稳定状态的元件普遍存在,如开关的开和关,电路的通和断,电压的高和低等销判闹,非常适合表示计算机中的数。设计过程简单,可靠性高。因此,现在改为二进位制计算机。
2。 二进位制
二进位制以2为基数,只用0和1两个数字表示数,逢2进一。
二进位制与遵循十进位制数遵循一样的运算规则,但显得比十进位制更简单。例如:
(1)加法:0+0=0 0+1=1 1+0=1 1+1=0
(2)减法:0-0=0 1-1=01-0=1 0-1=1
(3)乘法:0*0=0 0*1=01*0=0 1*1=1
(4)除法:0/1=0 1/1=1,除数不能为0
3。 八进位制
所谓八进位制,就是其基数为8,基数值可以取0、1、2、3、4、5、6、7共8个值,逢八进一。
八进位制与十进位制运算规则一样。那么为什么要用八亏罩进位制呢?难道要设计八进位制的计算机么?实际上,八进位制与十六进位制的引用,主要是为了书写和表示方便,因为二进位制表示位数比较长。如:(1024)10 用二进位制表示为 (10000000000)2,共有11个数字,用八进位制表示为(2000)8。更重要的是,由于二进位制与八进位制存在在一种对等关系,每三位二进位制与一位八进位制数完全对等(23=8)。所以二进位制和十进位制在运算上无区别,而时进位制不具备这一优点。
4。 十六进位制
十六进位制应用也是非常广泛的一种计数制。在使用者看来,十六进位制是二进位制数的一种更加紧凑的一种表示方法。
基数为:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,逢十进一。在十六进位制系统中,数值为10到15的数分别用A、B、C、D、E、F表示。
二进位制数及与之等值的八进位制、十进位制和十六进位制数
二进位制 八进位制 十进位制 十六进位制
0000 0 0 0
0001 1 1 1
0010 2 2 2
0011 3 3 3
0100 4 4 4
0101 5 5 5
0110 6 6 6
0111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 A
1011 13 11 B
1100 14 12 C
1101 15 13 D
1110 16 14 E
1111 17 15 F
我想知道二进位制数与八进位制数之间的转化关系
二进位制数-〉八进位制数
方法:以小数点为界, 整数部分,三位一断,不齐左补0。小数部分,三位一断,不齐右补0。
例: (11 010 111.010 11 )2=(327.26) 8
(0.9)10=(0.111 001 10 )2=(0.714) 8
八进位制数-〉二进位制数
方法:小数点位置不变,一位变三位
例: (327.26) 8=( 11 010 111.010 11 )2
(0.714) 8=(0.111 001 10 )2
对应关系:
二进位制数,八进位制数
000,0
001,1
010,2
011,3
100,4
101,5
110,6
111,7
八进位制数127转换为二进位制数
八进位制和十进位制的计算方法很类似
例如,214就是2*100+1*10+4
所以你可以先将127转化成十进位制
127=1*8~2+2*8+7
然后再将这个转化为二进位制!
用短除法!
将二进位制数296转换成八进位制数
这是一个十进位制的数
转换为二进位制是100101000
转换为八进位制是450
将二进位制数1101101110转换为八进位制数
二进位制 和八进位制三位一组 从最右开始分隔。
于是
1 101 101 110
然后每三位转成一个八进位制数
1 5 5 6
结果就是1556
把八进位制数652转换成二进位制数
Dim sz() As StringPublic Function DEC_BIN(ByVal Dnum As Long) As String Dim xx As String Dim yy As Integer xx = "" Do While Dnum > 0 yy = Dnum Mod 2 Dnum = Dnum \ 2 xx = Trim(Str(yy)) & xx Loop DEC_BIN = xxEnd FunctionPublic Function DEC_BIN_x(ByVal Dnum As Double) As String Dim xx As String Dim yy As Integer xx = "" Do While Dnum > 0 If Dnum * 2 >= 1 Then yy = 1 Else yy = 0 End If Dnum = Dnum * 2 - Val(yy) xx = xx & Trim(Str(yy)) Loop DEC_BIN_x = xxEnd FunctionPublic Function Bin_DEC(ByVal Dnum As String) As String Dim xx As String Dim n As Integer Dim yy As Long yy = 0 n = 0 For i = Len(Dnum) To 1 Step -1 xx = Mid(Dnum, i, 1) If xx = "1" Or xx = "0" Then yy = yy + Val(xx) * 2 ^ n n = n + 1 Else yy = 0 Exit For End If Next i Bin_DEC = CStr(yy)End FunctionPublic Function Bin_DEC_x(ByVal Dnum As String) As String Dim xx As String Dim n As Integer Dim yy As Double yy = 0# n = 1 For i = 1 To Len(Dnum) xx = Mid(Dnum, i, 1) If xx = "1" Or xx = "0" Then yy = yy + Val(xx) * (2 ^ (-n)) n = n + 1 Else yy = 0 Exit For End If Next i Bin_DEC_x = Mid(CStr(yy), 2)End FunctionPrivate Sub Command1_Click() If Text1.Text <> "" And IsNumeric(Text1.Text) Then Text3.Text = DEC_BIN(Val(Text1.Text)) Else Text3.Text = "" End If If Text2.Text <> "" And IsNumeric(Text2.Text) Then sz = Split(Text2.Text, ".") Text4.Text = DEC_BIN(Val(sz(0))) & "." & DEC_BIN_x(Val("0." & sz(1))) Else Text4.Text = "" End IfEnd SubPrivate Sub Command2_Click() If Text3.Text <> "" And IsNumeric(Text3.Text) Then Text1.Text = Bin_DEC(Text3.Text) Else Text2.Text = "" End If If Text4.Text <> "" And IsNumeric(Text4.Text) Then sz = Split(Text4.Text, ".") Text2.Text = Bin_DEC(Val(sz(0))) & "." & Bin_DEC_x(sz(1)) Else Text2.Text = "" End IfEnd SubPrivate Sub Command3_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = ""End SubPrivate Sub Form_Load() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = ""End Sub
从后往前每一位按十进位制转化方式转化为三位二进位制数,缺位处用0补充。
2、转换举例:
例:将八进位制的37.416转换成二进位制数:
3 7 . 4 1 6
011 111 .100 001 110
即:37.416(8进位制) =11111.10000111(二进位制)
详细解答二进位制数转换成八进位制
二进位制转八进位制对照表
(000)B=(0)O
(001)B=(1)O
(010)B=(2)O
(011)B=(3)O
(100)B=(4)O
(101)B=(5)O
(110)B=(6)O
(111)B=(7)O
转换方法是:以小数点为界,分别向左右每三位二进位制数合成一位八进位制数,冲早不足三位者补0。
例如:
(111010011.100101)B ->(111 010 011.100 101)B = (723.45)O
(1001011.1101)B ->(001 001 011.110 100)B =(113.64)O
求二进位制八进位制十进位制16进位制之间的详细转换关系
16进位制 0 1 2 3 4 5 6 7 8 9 A B C D E F
10进位制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
这是16进位制转化10进位制的程式码。
我来几个例子吧:27(10进位制)=27/16=1余11,则用16进位制可表示为1B,即余数用程式码表示。
再说二进位制,其实也不难,再举个1101(二进位制)为例吧:1101转化为十进位制=1*2^3+1*2^2+0*2^1+1*2^0=13(其中“*”表示乘号,“^”表示乘方)
要是看不懂二进位制,再来举一例把:(就举十进位制中的315)
315/2=157余1
157/2=78余1
78/2=39余0
39/2=19余1
19/2=9余1
9/2=4余1
4/2=2余0
2/2=1余0
1/2=0余1
所以二进位制为100111011
(二进位制再转化为十进位制):100111011=1*2的八次方+1*2的五次方+1*2的四次方+1*2的三次方+1*2的一次方+1*2的零次方=315
还有不懂可以再问,我知道的一定帮你解答
十六进位制与八进位制 二进位制之间的详细转换过程
额,你只要把二进位制小数点为区分,然后二进位制到八进位制的话就以二进位制三个数为一组,这样化,二进位制到十六进位制就是以四个为一组,例如1011.1101化为八进位制,小数点后就是以110,然后还剩一个1就自己补0,补成100,这样化,所以得13.64啊……
八进位制数与二进位制数、十六进位制数之间的关系?
1。 十进位制
十进位制使用十个数字(0、1、2、3、4、5、6、7、8、9)记数,基数为10,逢十进一。
历史上第一台电子数字计算机ENIAC是一台十进位制机器,其数字以十进位制表示,并以十进位制形式运算。设计十进位制机器比设计二进位制机器复杂得多。而自然界具有两种稳定状态的元件普遍存在,如开关的开和关,电路的通和断,电压的高和低等销判闹,非常适合表示计算机中的数。设计过程简单,可靠性高。因此,现在改为二进位制计算机。
2。 二进位制
二进位制以2为基数,只用0和1两个数字表示数,逢2进一。
二进位制与遵循十进位制数遵循一样的运算规则,但显得比十进位制更简单。例如:
(1)加法:0+0=0 0+1=1 1+0=1 1+1=0
(2)减法:0-0=0 1-1=01-0=1 0-1=1
(3)乘法:0*0=0 0*1=01*0=0 1*1=1
(4)除法:0/1=0 1/1=1,除数不能为0
3。 八进位制
所谓八进位制,就是其基数为8,基数值可以取0、1、2、3、4、5、6、7共8个值,逢八进一。
八进位制与十进位制运算规则一样。那么为什么要用八亏罩进位制呢?难道要设计八进位制的计算机么?实际上,八进位制与十六进位制的引用,主要是为了书写和表示方便,因为二进位制表示位数比较长。如:(1024)10 用二进位制表示为 (10000000000)2,共有11个数字,用八进位制表示为(2000)8。更重要的是,由于二进位制与八进位制存在在一种对等关系,每三位二进位制与一位八进位制数完全对等(23=8)。所以二进位制和十进位制在运算上无区别,而时进位制不具备这一优点。
4。 十六进位制
十六进位制应用也是非常广泛的一种计数制。在使用者看来,十六进位制是二进位制数的一种更加紧凑的一种表示方法。
基数为:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,逢十进一。在十六进位制系统中,数值为10到15的数分别用A、B、C、D、E、F表示。
二进位制数及与之等值的八进位制、十进位制和十六进位制数
二进位制 八进位制 十进位制 十六进位制
0000 0 0 0
0001 1 1 1
0010 2 2 2
0011 3 3 3
0100 4 4 4
0101 5 5 5
0110 6 6 6
0111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 A
1011 13 11 B
1100 14 12 C
1101 15 13 D
1110 16 14 E
1111 17 15 F
我想知道二进位制数与八进位制数之间的转化关系
二进位制数-〉八进位制数
方法:以小数点为界, 整数部分,三位一断,不齐左补0。小数部分,三位一断,不齐右补0。
例: (11 010 111.010 11 )2=(327.26) 8
(0.9)10=(0.111 001 10 )2=(0.714) 8
八进位制数-〉二进位制数
方法:小数点位置不变,一位变三位
例: (327.26) 8=( 11 010 111.010 11 )2
(0.714) 8=(0.111 001 10 )2
对应关系:
二进位制数,八进位制数
000,0
001,1
010,2
011,3
100,4
101,5
110,6
111,7
八进位制数127转换为二进位制数
八进位制和十进位制的计算方法很类似
例如,214就是2*100+1*10+4
所以你可以先将127转化成十进位制
127=1*8~2+2*8+7
然后再将这个转化为二进位制!
用短除法!
将二进位制数296转换成八进位制数
这是一个十进位制的数
转换为二进位制是100101000
转换为八进位制是450
将二进位制数1101101110转换为八进位制数
二进位制 和八进位制三位一组 从最右开始分隔。
于是
1 101 101 110
然后每三位转成一个八进位制数
1 5 5 6
结果就是1556
把八进位制数652转换成二进位制数
Dim sz() As StringPublic Function DEC_BIN(ByVal Dnum As Long) As String Dim xx As String Dim yy As Integer xx = "" Do While Dnum > 0 yy = Dnum Mod 2 Dnum = Dnum \ 2 xx = Trim(Str(yy)) & xx Loop DEC_BIN = xxEnd FunctionPublic Function DEC_BIN_x(ByVal Dnum As Double) As String Dim xx As String Dim yy As Integer xx = "" Do While Dnum > 0 If Dnum * 2 >= 1 Then yy = 1 Else yy = 0 End If Dnum = Dnum * 2 - Val(yy) xx = xx & Trim(Str(yy)) Loop DEC_BIN_x = xxEnd FunctionPublic Function Bin_DEC(ByVal Dnum As String) As String Dim xx As String Dim n As Integer Dim yy As Long yy = 0 n = 0 For i = Len(Dnum) To 1 Step -1 xx = Mid(Dnum, i, 1) If xx = "1" Or xx = "0" Then yy = yy + Val(xx) * 2 ^ n n = n + 1 Else yy = 0 Exit For End If Next i Bin_DEC = CStr(yy)End FunctionPublic Function Bin_DEC_x(ByVal Dnum As String) As String Dim xx As String Dim n As Integer Dim yy As Double yy = 0# n = 1 For i = 1 To Len(Dnum) xx = Mid(Dnum, i, 1) If xx = "1" Or xx = "0" Then yy = yy + Val(xx) * (2 ^ (-n)) n = n + 1 Else yy = 0 Exit For End If Next i Bin_DEC_x = Mid(CStr(yy), 2)End FunctionPrivate Sub Command1_Click() If Text1.Text <> "" And IsNumeric(Text1.Text) Then Text3.Text = DEC_BIN(Val(Text1.Text)) Else Text3.Text = "" End If If Text2.Text <> "" And IsNumeric(Text2.Text) Then sz = Split(Text2.Text, ".") Text4.Text = DEC_BIN(Val(sz(0))) & "." & DEC_BIN_x(Val("0." & sz(1))) Else Text4.Text = "" End IfEnd SubPrivate Sub Command2_Click() If Text3.Text <> "" And IsNumeric(Text3.Text) Then Text1.Text = Bin_DEC(Text3.Text) Else Text2.Text = "" End If If Text4.Text <> "" And IsNumeric(Text4.Text) Then sz = Split(Text4.Text, ".") Text2.Text = Bin_DEC(Val(sz(0))) & "." & Bin_DEC_x(sz(1)) Else Text2.Text = "" End IfEnd SubPrivate Sub Command3_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = ""End SubPrivate Sub Form_Load() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = ""End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
上海巴鲁图工程机械科技有限公司_
2022-05-15 广告
2022-05-15 广告
光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器每转输出60(我们用老板没有说)个脉冲,五线制。其中两根为电源线,三根为脉冲线(A相、B相、Z)。电源的工作电压为 (+5~+24V)直流电源。光...
点击进入详情页
本回答由上海巴鲁图工程机械科技有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询