你如何用二进制表示(十进制)整数50? 必须“翻转”多少位才能大写ASC11中表示的小写“a”? 你如何表示(十进制)整数50 in,oh,“hexadecimal”,也称为base-16?回想一下,十进制只是基数为10,而二进制只是基数为2。从那些基础系统推断如何表示这一个? 请回答这些问题.HELP。
答案 0 :(得分:0)
以下是关于转换为二进制文件的一些提示:
50 mod 2
?那么25 mod 2
然后是12 mod 2
呢?如果你继续这样做会有什么结果?mod 2
(总是)返回结果是什么? - 1
或0
测试案例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组成。
这可以帮助您理解二进制转换
十进制是0-9
十六进制是0-9,然后是A-F(所以A代表10,B代表11,等等F代表15)