首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >十进制的二进制数字

十进制的二进制数字
EN

Stack Overflow用户
提问于 2014-06-13 19:41:37
回答 2查看 3.4K关注 0票数 0

如何用二进制表示(十进制)整数50?需要“翻转”多少位才能将ASC11中表示的小写“a”大写?如何表示“十六进制”中的(十进制)整数50,也就是16进制?回想一下,十进制只是基数10,而二进制是基数2。从这些基本系统中推断出如何表示这个系统?请回答me.HELP的这些问题。

EN

回答 2

Stack Overflow用户

发布于 2014-06-13 19:45:17

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

这里有一些关于转换为二进制文件的提示:

  • 什么是50 mod 2?那么25 mod 212 mod 2呢?如果你继续这样做,你的结果会是什么?,any number mod 2 (always)返回什么作为结果?- 1
  • 你意识到任何模式了吗?-你得到了反转的二进制数,作为result

测试用例50:

代码语言:javascript
代码运行次数:0
运行
复制
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转换为十六进制时所看到的那样:

代码语言:javascript
代码运行次数:0
运行
复制
50 mod 16 = 2 - 2nd digit
 3 mod 16 = 3 - 1st digit

再次连接和颠倒的余数是32,它方便地表示为十六进制的50

一般来说,我们可以说,要将一个数字转换成一个任意基数,你必须取该数字和基数的余数,然后将该数字除以基数,然后再做同样的事情。在程序中,这看起来像这样:

代码语言:javascript
代码运行次数:0
运行
复制
while the number is greater 0 do:
    result = (number mod base) + result;
    number = number div base;

从任意基数转换为小数

如何将数字从任意基数转换为基数10?首先,让我们用二进制代码做一个测试用例。让我们取上一个例子中的50110010

从二进制转换的方法是将每个数字与基数相乘,乘以它在数字中位置的幂,然后将结果相加。位置的枚举以最低有效数字处的0开始。我们之前的数字看起来就像这样:

代码语言:javascript
代码运行次数:0
运行
复制
1 *2^5 + 1 *2^4 + 0 *2^3 + 0 *2^2 + 1 *2^1 + 0 *2^0

简化为:

代码语言:javascript
代码运行次数:0
运行
复制
32 + 16 + 2 = 50

它还可以与任何其他基础一起使用,比如上一个示例中的32

代码语言:javascript
代码运行次数:0
运行
复制
3 *16^1 + 2*16^0 = 48 + 2 = 50

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

代码语言:javascript
代码运行次数:0
运行
复制
from end of number to beginning do:
    result = result + digit * (base ^ position)
票数 0
EN

Stack Overflow用户

发布于 2014-06-13 19:56:18

为了给你一些帮助:

二进制只由1和0组成。

这可能会帮助您理解二进制转换

小数是0-9

十六进制是0-9,然后是A-F (因此A代表10,B代表11,依此类推,直到F是15)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24204486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档