现在我正在准备我的AP计算机科学考试,我需要一些帮助来理解如何手动在十进制、十六进制和二进制值之间进行转换。我正在使用的书(Barron的)包括一个例子,但没有很好地解释它。
在这些数字类型之间应该使用哪些公式进行转换?
发布于 2012-02-19 08:30:53
你对理解数基感到高兴吗?如果不是,那么你将需要阅读这方面的知识,否则你将盲目地遵循一些规则。
很多书都会在这方面花上整整一章甚至更多的时间……
二进制是基数2,十进制是基数10,十六进制是基数16。
所以二进制使用数字0和1,十进制使用0-9,十六进制使用0-9,然后我们用完了,所以我们也使用A-F。
因此,十进制数字的位置表示单位、十、百、千…这些是“10的幂”
二进制数字的位置表示单位,2s,4s,8s,16s,32s...the的2次方
十六进制数字的位置表示单位,16s,256s...the的16次方
对于二进制到十进制,将每个1乘以它的“幂”相加,因此从右到左:
1001 binary = 1*1 + 0*2 + 0*4 + 1*8 = 9 decimal对于二进制到十六进制,您可以计算出十进制的总数,然后转换为十六进制,或者您可以将每个4位序列转换为单个十六进制数字:
1101 binary = 13 decimal = D hex
1111 0001 binary = F1 hex对于十六进制到二进制,颠倒前面的例子-在你的头脑中做这件事并不是太糟糕,因为你只需要计算出8,4,2,1中的哪一个需要相加才能得到所需的值。
对于decimal to binary,这更像是一个长除法问题-找到比输入小的2的最大幂,将相应的二进制位设置为1,然后从原始十进制数中减去2的幂。重复以上步骤,直到剩下零个。
例如,对于87:
2的最高幂是1,2,4,8, 16,32,64!
对于十六进制到十进制,它就像是二进制到十进制,只是你乘以1,16,256...而不是1,2,4,8.
对于decimal to hex,这就像是十进制到二进制,只是你要找的是16的幂,而不是2的幂。这是最难手动完成的。
发布于 2012-02-19 08:22:48
这是一个非常基本的问题,入门级的详细答案很可能只有几页。尝试google it :-)
https://stackoverflow.com/questions/9345434
复制相似问题