计算机如何将二进制文件(例如110011(51))转换为相应的ASCII值53('5')和49('1')?此外,计算机如何将53和49转回110011?
答案 0 :(得分:4)
二进制到十进制转换通常用作重复分割循环。如果我们从数字N开始,(N mod 10)是最后一位数,然后我们继续将N除以10并重复得到其他数字。
从字符串转换为内部表示更加容易。
在下一次迭代中(即“1”= ASCII 49)再次减去48:49-48 = 1。我们将累加器加1给出51.不再有字符,所以我们完成了,结果是51。
计算机的内部表示是二进制的这一事实是偶然的。我们只需要能够加,减和乘以将字符串转换为计算机内的数字。
(当然减法只是添加一个负数,而乘法只是一系列加法,所以加法就是真正需要的。)
答案 1 :(得分:0)
它不会转向它们。 53
在内存中始终为53
。
当需要显示时,会调用一个函数,该函数知道当它看到数字53
时,它会生成我们的眼睛看作5
的图形。或者在内存中,它可以将数字53
转换为数字53
和51
,最终某些程序将显示为字符"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)