十进制/十六进制/二进制转换

时间:2012-02-19 00:15:19

标签: binary hex decimal

现在我正准备参加我的AP计算机科学考试,我需要一些帮助来了解如何手动转换十进制,十六进制和二进制值。我正在使用的这本书(Barron's)包含了一个例子,但没有很好地解释它。

在这些数字类型之间进行转换时,应使用哪些公式?

2 个答案:

答案 0 :(得分:2)

你知道数字基数,你感到高兴吗?如果没有,那么你需要阅读这个或者你只是盲目地遵循一些规则。

很多书会花上整整一章或更多时间......

二进制是基数2,十进制是基数10,十六进制是基数16.

所以二进制使用数字0和1,十进制使用0-9,十六进制使用0-9然后我们用完所以我们也使用A-F。

所以十进制数字的位置表示单位,数十,数百,数千...这些是10""的权力;

二进制数字的位置表示单位,2s,4s,8s,16s,32s ...... 2的幂

十六进制数字的位置表示单位,16s,256s ...... 16的幂

对于二进制到十进制,将每个1加上它的' power'加起来,从右到左工作:

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中的哪一个你需要加起来才能获得所需的价值。

对于十进制到二进制,它更像是一个长除法问题 - 找到比输入小的2的最大幂,将相应的二进制位设置为1,然后减去该幂从原始十进制数字的2。重复,直到你剩下零。

E.g。对于87:

  • 两个最高功率有1,2,4,8,16,32, 64
  • 64是2 ^ 6所以我们在结果中将相关位设置为1:1000000
  • 87 - 64 = 23
  • 小于23的下一个最高功率2是16,所以设置位:1010000
  • 重复4,2,1
  • 最终结果1010111二进制
  • 即。 64 + 16 + 4 + 2 + 1 =十进制87

对于十六进制到十进制,它就像二进制到十进制,只有你乘以1,16,256 ...而不是1,2,4,8 ...

对于十进制到十六进制,它就像十进制到二进制,只有你正在寻找16的幂,而不是2.这是最难手动的。

答案 1 :(得分:0)

这是一个非常基本的问题,其详细答案,在入门级别可能是几页。尝试google it: - )

相关问题