现在我正准备参加我的AP计算机科学考试,我需要一些帮助来了解如何手动转换十进制,十六进制和二进制值。我正在使用的这本书(Barron's)包含了一个例子,但没有很好地解释它。
在这些数字类型之间进行转换时,应使用哪些公式?
答案 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,16,256 ...而不是1,2,4,8 ...
对于十进制到十六进制,它就像十进制到二进制,只有你正在寻找16的幂,而不是2.这是最难手动的。
答案 1 :(得分:0)
这是一个非常基本的问题,其详细答案,在入门级别可能是几页。尝试google it: - )