计算机中的二进制到十进制

时间:2012-05-08 23:30:22

标签: binary decimal computer-architecture

计算机如何将二进制文件(例如110011(51))转换为相应的ASCII值53('5')和49('1')?此外,计算机如何将53和49转回110011?

4 个答案:

答案 0 :(得分:4)

二进制到十进制转换通常用作重复分割循环。如果我们从数字N开始,(N mod 10)是最后一位数,然后我们继续将N除以10并重复得到其他数字。

  1. 我们从N = 51
  2. 开始
  3. 51 mod 10是1.最后一位是1.
  4. 除以10以丢弃我们刚刚提取的数字(整数除法轮数),得到5。
  5. (这是步骤2的重复,不同的N)5 mod 10是5.下一个数字是5.
  6. 5/10为0(四舍五入),所以我们完成了。相反顺序的数字是1和5.
  7. 我们在每个数字值上加48,得到ASCII中相应的十进制数字。
  8. 所以最终的结果是“51”。
  9. 从字符串转换为内部表示更加容易。

    1. 从累加器中的0开始
    2. 取第一个字符(此处为“5”)。这是ASCII 53.减去48得到5.
    3. 将其添加到我们的累加器中以获得0 + 5 = 5.
    4. 请注意,还有另一个数字。将累加器乘以10得到50。
    5. 返回第1步
    6. 在下一次迭代中(即“1”= ASCII 49)再次减去48:49-48 = 1。我们将累加器加1给出51.不再有字符,所以我们完成了,结果是51。

      计算机的内部表示是二进制的这一事实是偶然的。我们只需要能够加,减和乘以将字符串转换为计算机内的数字。

      (当然减法只是添加一个负数,而乘法只是一系列加法,所以加法就是真正需要的。)

答案 1 :(得分:0)

它不会转向它们。 53在内存中始终为53

当需要显示时,会调用一个函数,该函数知道当它看到数字53时,它会生成我们的眼睛看作5的图形。或者在内存中,它可以将数字53转换为数字5351,最终某些程序将显示为字符"5""3"。< / p>

53总是110101。存储器单元是位序列,并且将小数53保持为位001101011

同样,有些功能可以看到这些位,并且可以在屏幕上生成字符"5"和字符"3"

但在计算机内部,它始终是数字,而且总是二进制。

答案 2 :(得分:0)

尝试为此目的编写计算机程序。它通常用软件完成,但有些处理器有特殊用途的十进制指令。只是假装你的工作是查看带有二进制整数的纸条,然后生成带有Unicode代码点的纸条,你就可以立即获得基本轮廓。

答案 3 :(得分:0)

将二进制转换为ASCII:

1)将你的数字除以10十进制(1010二进制)并计算余数 2)使用余数,添加48(“0”的ASCII值)。这会给你最后一位数字。 3)如果商为0,则停止 4)如果商大于0,则使用商从步骤1重新开始。

EG。使用基数10(1010)将51(110011)转换为ASCII:

110011 / 1010  = 0101 (5 decimal) remainder 0001


0001 (the remainder from above) + 110000 ('0') = 110001 (49 decimal or '1' in ASCII)

0101 (the quotient from above) / 1010 = 0 remainder 0101
0101 (the remainder) + 110000 ('0') = 110101 (53 decimal or '5' in ASCII)