2012-02-19 214 views
1

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

这些数字类型之间应该用什么公式来转换?

+0

如果这是期末考试,我希望你考试不及格。也许管理层更适合你? – wildplasser 2012-02-19 00:57:18

+2

我认为你在这里误解了一些东西;我正在进行的测试是由Collegeboard发布的AP计算机科学考试。我目前在计算机科学1级,而我的老师目前只讲解了基础知识(原语,布尔代数,封装,范围,数组,列表等)。他还没有完成二进制/十六进制值。我不得不自学递归,GridWorld,插入和选择搜索,继承和其他概念。 – andyf 2012-02-19 06:34:27

+0

我想你假设每个人都知道“AP计算机科学考试”是什么。也没有像十六进制*值*那样的东西。值保持不变,只是为数字选择的(重新)演示文稿。 10和0x0a和012具有相同的值,但表示方式不同。 – wildplasser 2012-02-19 12:12:05

回答

2

你很高兴你明白数字的基础吗?如果没有,那么你需要阅读这个或者你会盲目地遵循一些规则。

大量的书籍会花整整一章或更多关于这...

二进制为基础2,小数为基地10,十六进制是基地16

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

所以十进制数字的位置指示单位,几十,几百,几千......这些都是“10强”

二进制数字的位置指示单位,2秒,4秒,8,16战机,32S ...的2

的十六进制数字的位置指示单元,16S,256S的权力... 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中哪些需要加起来才能获得所需的值。

对于十进制到二进制,它更像是一个长期分裂问题 - 找到2的最大幂小于您的输入,将相应的二进制位设置为1,并从原始十进制数中减去2的幂。重复,直到剩下零。

E.g. 87:

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

87对于十六进制到十进制,它像二进制转换为十进制,只有你通过1,16,256乘...而不是1,2,4,8 ......

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

0

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

相关问题