十进制的二进制数字

时间:2014-06-13 11:41:37

标签: binary digits

你如何用二进制表示(十进制)整数50? 必须“翻转”多少位才能大写ASC11中表示的小写“a”? 你如何表示(十进制)整数50 in,oh,“hexadecimal”,也称为base-16?回想一下,十进制只是基数为10,而二进制只是基数为2。从那些基础系统推断如何表示这一个? 请回答这些问题.HELP。

2 个答案:

答案 0 :(得分:0)

从十进制转换为另一个基础

以下是关于转换为二进制文件的一些提示:

  • 什么是50 mod 2?那么25 mod 2然后是12 mod 2呢?如果你继续这样做会有什么结果?
  • 任何数字mod 2(总是)返回结果是什么? - 10
  • 你意识到任何模式吗? - 您得到反向二进制数字

测试案例50:

50 mod 2 = 0 - 6th digit
25 mod 2 = 1 - 5th digit
12 mod 2 = 0 - 4th digit
 6 mod 2 = 0 - 3rd digit
 3 mod 2 = 1 - 2nd digit
 1 mod 2 = 1 - 1st digit

连接和反转的部门的剩余部分为:110010,二进制为50

这可以转变为更多基地吗? - 是的,正如我们在尝试将50转换为十六进制时看到的那样:

50 mod 16 = 2 - 2nd digit
 3 mod 16 = 3 - 1st digit

再次连接和反转的余数为32,方便地以十六进制为50

一般情况下,我们可以说要将数字转换为任意基数,您必须取数字和基数的余数,然后将数字除以基数并再次执行相同的操作。在一个程序中,这看起来像:

while the number is greater 0 do:
    result = (number mod base) + result;
    number = number div base;

从任何基数转换为十进制

如何将数字从任意基数转换为基数10?首先让我们用二进制做一个测试用例。让我们从上一个例子中50开始:110010

从二进制转换的方法是将每个数字与基数相乘,得到数字中位置的幂并将结果相加。位置的枚举以0开头,最低位数。我们之前的号码看起来像这样:

1 *2^5 + 1 *2^4 + 0 *2^3 + 0 *2^2 + 1 *2^1 + 0 *2^0

简化为:

32 + 16 + 2 = 50

它也适用于任何其他基础,例如前一个示例中的32

3 *16^1 + 2*16^0 = 48 + 2 = 50

在程序中,这看起来像这样:

from end of number to beginning do:
    result = result + digit * (base ^ position)

答案 1 :(得分:0)

为了帮助你:

二进制文件仅由1和0组成。
这可以帮助您理解二进制转换[conversion table]

十进制是0-9

十六进制是0-9,然后是A-F(所以A代表10,B代表11,等等F代表15)