我认为真正的问题是如何将 base2/binary 转换为 base10。最常见的应用可能是创建输出字符串:将二进制数字数据 block 转换为字符数组。这具体是如何完成的?
我的猜测: 鉴于可能没有为每个数值预定义一个字符串,我猜测计算机从右到左遍历整数的每一位,每次递增 char 数组/base10 表示法位置中的适当值。如果我们取二进制数 160 (10100000),它就会知道第 8 位的 1 表示 128,因此它将 1 放入第三列,2 放入第二列,8 放入第三列。第 6 列中的 1 表示 32,它会将这些值添加到第二位和第一位,并在需要时继续保留。之后就可以轻松转换为实际的字符代码。
最佳答案
while number != 0:
nextdigit = number % 10
AddToLeft(result, convert nextdigit to char)
number = number / 10
留给读者处理零和负数的练习。
关于casting - 整数是如何在底层转换为字符串的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2504263/