十进制的数如何转换成r进制的,r进制的数如何转换成十进制的

2024-11-19 03:50:36
推荐回答(3个)
回答1:

(1)将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取将除得的余数,即换算为二进制数的结果。例如把52换算成二进制数:

所以52对应的二进制数就是110100。

(2)整数二进制用数值乘以2的幂次依次相加,小数二进制用数值乘以2的负幂次然后依次相加即为十进制。比如将二进制110转换为十进制:

(1)二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用1来表示“开”,0来表示“关”。

(2)十进制计数法是相对二进制计数法而言的,是我们日常使用最多的计数方法(俗称"逢十进一")。它的定义是:“每相邻的两个计数单位之间的进率都为十的计数法则就叫做十进制计数法”。

(3)十进制的有限小数转换成二进制不能保证能精确转换,二进制小数转换成十进制也遇到同样的问题。这也为信息处理带来了很大的不便。甚至为了能够较快的转换十进制数和二进制数,在设计处理器的时候加入了专门的电路和语句来完成这个过程,造成了处理器设计的浪费。因此,可以说十进制不适应现代化信息设备。

回答2:

Public 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 = xx
End Function
Public Function DEC_O(ByVal Dnum As Long) As String
  Dim xx As String
  Dim yy As Integer
  Dim a
  a = Array(0, 1, 2, 3, 4, 5, 6, 7)
  xx = ""
  Do While Dnum > 0
    yy = a(Dnum Mod 8)
    Dnum = Dnum \ 8
    xx = yy & xx
  Loop
  DEC_O = xx
End Function

Public Function DEC_H(ByVal Dnum As Long) As String
  Dim xx As String
  Dim yy As String
  Dim r
  r = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", "C", "D", "E", "F")
  xx = ""
  Do While Dnum > 0
    yy = r(Dnum Mod 16)
    Debug.Print yy
    Dnum = Dnum \ 16
    xx = yy & xx
  Loop
  DEC_H = xx
End Function

Private Sub Command1_Click()
Text2.Text = DEC_BIN(Val(Text1.Text))
End Sub

Private Sub Command2_Click()
Text3.Text = DEC_O(Val(Text1.Text))
End Sub

Private Sub Command3_Click()
Text4.Text = DEC_H(Val(Text1.Text))
End Sub

Private Sub Form_Load()
Text1.Text = 12
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End Sub

回答3:

一个十进制的数 ÷ r = 商 …… 余数
如果商<r,那么r进制数 = 商 × 10 + 余数
如果商≥r 继续除,至到商<r,
r进制数 = 最小的商 & 余数 & 余数 & … & 余数

r进制的数向右第一位的数×r的(r进制数的位数减一)次幂+r进制的数向右第二位的数 × r的(r进制数的位数减二次幂)+ … +r进制数的最右那位×r的零次幂
= 一个以十进制表示的数

十进制的数127,5进制 如下:
127 ÷ 5 = 25 …… 2
25>5
25 ÷ 5 = 5 …… 0
5 = 5
5 ÷ 5 = 1 …… 0
5进制数为1002

1002是个4位数
1002的位数减一 = 3
1 × 5³ + 0 × 5² + 0 × 5¹ + 2 × 5⁰
= 125 + 0 + 0 + 2
= 127