如何用二进制表示(十进制)整数50?需要“翻转”多少位才能将ASC11中表示的小写“a”大写?如何表示“十六进制”中的(十进制)整数50,也就是16进制?回想一下,十进制只是基数10,而二进制是基数2。从这些基本系统中推断出如何表示这个系统?请回答me.HELP的这些问题。
发布于 2014-06-13 19:45:17
从十进制转换为另一个基数
这里有一些关于转换为二进制文件的提示:
50 mod 2
?那么25 mod 2
和12 mod 2
呢?如果你继续这样做,你的结果会是什么?,any number mod 2
(always)返回什么作为结果?- 1
或测试用例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)
发布于 2014-06-13 19:56:18
为了给你一些帮助:
二进制只由1和0组成。
这可能会帮助您理解二进制转换
小数是0-9
十六进制是0-9,然后是A-F (因此A代表10,B代表11,依此类推,直到F是15)
https://stackoverflow.com/questions/24204486
复制相似问题