这肯定是重复的,但我无法找到以下问题的答案。
让我们考虑十进制整数14。我们可以获得它的二进制表示1110,例如使用2除法(%表示模数操作数):
14 % 2 = 0
7 % 2 = 1
3 % 2 = 1
1 % 2 = 1但是计算机如何将十进制转换为二进制整数呢?
以上方法将要求计算机执行算术,据我所知,因为算术是在二进制数字上执行的,所以似乎我们将重新处理相同的问题。
我想任何其他的算法方法都会遇到同样的问题。计算机如何将十进制转换为二进制整数?
Update:在与代码-学徒讨论之后(请参阅他的回答下的评论),以下是两个感兴趣的案例中问题的重新表述:
当用户在键盘上键入整数时,如何执行对二进制的转换?
( b)如果用编程语言(例如12 / 3 )进行数学运算,那么在运行程序时如何实现从十进制到二进制的转换,以便计算机能够完成算法?
发布于 2018-02-28 16:51:38
只有二进制
计算机将所有数据以二进制形式存储。它不会从十进制转换为二进制,因为二进制是它的本机语言。当计算机显示一个数字时,它将从二进制表示转换为任何基(在默认情况下为十进制)。
这里需要理解的一个关键概念是计算机内部存储和显示器上的字符表示之间的区别。如果要将数字显示为二进制,可以用代码编写算法来执行手动执行的准确步骤。然后,按照算法计算出的字符1和0打印出来。
发布于 2020-10-01 15:52:00
事实上,正如您在注释中提到的,如果编译器有一个小的查找表来将十进制整数与二进制整数关联起来,那么它可以通过简单的二进制乘法和加法来完成。查表必须包含单数小数位和十进制十、百、千等的二进制关联。小数点14可以通过将二进制1乘以二进制10和添加二进制4来转换为二进制。十进制149将是二进制1乘以二进制100,加上二进制4乘以二进制10,最后加进二进制9。
发布于 2021-06-12 15:33:04
十进制在程序中被误解
让我们以c语言为例
int x = 14;在这里,14不是十进制,它的两个字符1和4一起写成是14。
我们知道字符只是一些二进制值的表示。
00110001 1英镑
00110100 4英镑
所以在charcter形式中,14实际上写成二进制00110001 00110100。
00110001 00110100 =>这个二进制文件在电脑屏幕上看起来是14 (所以我们认为它是十进制的)
我们知道数字14应该变成14 = 1110。
或者我们可以用零代替
14 = 00001110
要做到这一点,计算机/处理器只需执行二进制到二进制转换,即
00110001 00110100至00001110
我们都准备好了
https://stackoverflow.com/questions/49033951
复制相似问题