十进制数转化为二进制数的两种方法

十进制数转化为二进制数的两种方法如果我们要把十进制的 150 转化为二进制数 可以使用下面两种方法 第一种方法 表格法这种方法的核心思想就是用二进制的各位来 拼凑 出我们的十进制数 我们先把二进制各位的位权列在表格里面 我们如何知道要列多少位出来呢 其实我们就是要列到比 150 小并且最接近 150 的那一位 也就是列到 128 就可以了 128 64 32 16 8 4 2 1 然后我们从左

如果我们要把十进制的150转化为二进制数,可以使用下面两种方法:

第一种方法:表格法

这种方法的核心思想就是用二进制的各位来“拼凑”出我们的十进制数。

我们先把二进制各位的位权列在表格里面。(我们如何知道要列多少位出来呢?其实我们就是要列到比150小并且最接近150的那一位,也就是列到128就可以了。)

128 64 32 16 8 4 2 1
               

 

 

 

 然后我们从左往右看,如果需要使用这一位去拼凑150这个数,就在那一位的下方写上1,反之,写0.

128是最接近150的,必然要用到。所以表格变成了下面的样子: 

128 64 32 16 8 4 2 1
1              

 

 

 

然后,我们从150里面把128减掉,剩下的是22。我们发现64和32都比22大,那么这两位就用不到,记上0.

128 64 32 16 8 4 2 1
1 0 0          

 

 

 

16比22小,需要使用,记上1.

128 64 32 16 8 4 2 1
1 0 0 1        

 

 

 

把16从22里减掉,得到6。8比6大,用不到,记上0.

128 64 32 16 8 4 2 1
1 0 0 1 0      

 

 

 

4比6小,需要使用,记上1.

128 64 32 16 8 4 2 1
1 0 0 1 0 1    

 

 

 

把4从6里减掉,得到2. 正好下一位的2可以使用,记为1。至此,就完成了拼凑,所以最后的1也用不上了,记为0.

128 64 32 16 8 4 2 1
1 0 0 1 0 1 1 0

 

 

 

表格第二行连起来是,它就是十进制的150在二进制中的表示。

这种方法的优点是比较容易理解,缺点是有些麻烦。如果数字很大,表格需要列得很长。

第二种方法:除基取余法

第一步,150除以2,商75,余0;

第二步,75除以2,商37,余1;

第三步,37除以2,商18,余1;

第四步,18除以2,商9,余0;

第五步,9除以2,商4,余1;

第六步,4除以2,商2,余0;

第七步,2除以2,商1,余0;

第8步,1除以2,商0,余1.

组合的时候,一定要记得最后得到的余数是二进制中的最高位。所以我们要倒着组合,得到.

可能这种方法一开始不是那么好理解,可以对比我们熟悉的十进制数。如果我们有一个十进制数168,第一次除以10,商16,余8,这就相当于我们把个位的8(最低位)给“脱”下来了;第二次,16除以10,商1,余6,这就相当于把十位的那个6给“脱”下来了;然后再用1除以10,商0,余1,这就相当于把百位的1给“脱”下来了。所以我们这一路得到的余数,是从低位到高位的数字。那么二进制里,也是同样的道理。

使用这种方法,还是比较便捷的,只要计算的时候细心一些就好了。

 

如果这篇博文帮到了你,就请给我点个吧(#^.^#)

有疑问也欢迎留言~博主可nice啦,在线秒回ヾ(◍°∇°◍)ノ゙

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221010.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午7:08
下一篇 2026年3月17日 下午7:08


相关推荐

  • baq在聊天中啥意思_BAQ是什么意思

    baq在聊天中啥意思_BAQ是什么意思1.Inthismethod,therawdataofIandQchannelsisdividedintoblocksatfirst,theneachblockistransformedintotime-frequencydomainby2D-RDGT(Two-DimensionalRealvaluedDiscreteGaborTr…

    2022年6月15日
    122
  • subdiscipline_Sublime

    subdiscipline_Sublime部分转载自:使用sublime-snippet来快速做前端页面分析在sublime来中,可以通过submlime-snippet来快速补全代码。举个栗子,如果在sublime的存放submlime-snippet的文件夹下有如下的文件(elem-edge.sublime-snippet文件名不重要)ele

    2025年6月13日
    8
  • linux必须运行在enforcing,Linux(入门基础):97—SELinux三种模式的启动、关闭、查看(getenforce、setenforce、sestatus、restorecon)…

    linux必须运行在enforcing,Linux(入门基础):97—SELinux三种模式的启动、关闭、查看(getenforce、setenforce、sestatus、restorecon)…一、SELinux三种模式简介Enforcing:强制模式。代表SELinux在运行中,且已经开始限制domain/type之间的验证关系Permissive:宽容模式。代表SELinux在运行中,不过不会限制domain/type之间的验证关系,即使验证不正确,进程仍可以对文件进行操作。不过如果验证不正确会发出警告Disabled:关闭模式。SELinux并没有实际运行二、getenforce命…

    2022年6月27日
    39
  • 查看进程运行在哪个cpu_鲲鹏980CPU

    查看进程运行在哪个cpu_鲲鹏980CPU前言最近用华为鲲鹏跑了一段时间服务后,出现了系统负载40多居高不下的情况,一排查发现是kworker进程占用CPU很高,而且还杀不掉。通过华为的监控发现是磁盘I/O很高,重启服务器后能短暂解决问题,但是过几天负载还是会很高,导致很多进程被系统杀死。但是出现问题的就一台鲲鹏,其他的鲲鹏没有出现,通过比较发现内核版本不一样,执行uname-a输出如下正常的鲲鹏Linuxkpv7-pbx-00014.18.0-80.7.2.el7.aarch64#1SMPThuSep1216:1

    2025年12月10日
    4
  • python : 建立属于自己的爬虫代理ip池

    python : 建立属于自己的爬虫代理ip池

    2021年11月10日
    49
  • X86汇编指令大全

    X86汇编指令大全X86 和 X87 汇编指令大全 有注释 一 数据传输指令它们在存贮器和寄存器 寄存器和输入输出端口之间传送数据 1 通用数据传送指令 MOV 传送字或字节 MOVSX 先符号扩展 再传送 MOVZX 先零扩展 再传送 PUSH 把字压入堆栈 POP 把字弹出堆栈

    2026年3月26日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号