如果我们要把十进制的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

表格第二行连起来是10010110,它就是十进制的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.

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

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

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

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

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

十进制数转化为二进制数的两种方法相关推荐

  1. 将数组转化成字符串的两种方法

    将数组转化成字符串的两种方法 let arr = [1,2,8,9,'西瓜']; console.log(arr.toString());//将数组转化为字符串 console.log(arr.toS ...

  2. 将十进制数转化成二进制数,计算其中1的个数

    以下是我学到的三种方法,如果大家还有更好的方法,可以讨论交流. 首先,我们得知道十进制怎样转化成二进制,如下图. 得到10的二进制数为1010 那么我们会发现,10%2是判断二进制数的最后一位是0还是 ...

  3. 将一个十进制数转化为二进制数,统计二进制数中1的个数

    进制转化,统计数字个数: 任务拆解 进制转换 统计数字个数 函数代码 测试结果 任务拆解: 提示:首先分析并分解问题 1. 进制转换 2. 统计二进制数中的"1"的个数 进制转换: ...

  4. python 获取csv的列数_Python读取excel的两种方法

    excel是什么 Microsoft Excel是一个使用非常广泛的电子表格程序.它的用户友好性和吸引人的功能使其成为数据科学中常用的工具.对于excel来说,整个excel文件称为工作簿,工作簿中的 ...

  5. 几种将十进制数转化成为二进制数的方法

    def fun():num = int(input('请输入一个十进制的整数:'))# 1.bin()print(num, '的二进制数为:', bin(num))print(str(num) + ' ...

  6. 怎么将一个十进制数转化为二进制数并打印出来

    #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int main() { int ...

  7. 经典习题 十进制数转化为二进制数

    源码: #include <stdio.h> void DectoBin(int number);int main(void) {int n;scanf("%d",&a ...

  8. #用数组实现把十进制数转化为二进制数

    代码如下: #include"stdio.h" int main() { int i,j,t,a[8]={0,0,0,0,0,0,0,0};scanf("%d" ...

  9. 数字转化为字符串的两种方法

    public static void main(String[] args) {int a = 100;//使用空字符串相加数字,会自动变成字符串类型String str = "" ...

  10. (C++)用指针实现两数交换函数swap()的两种方法

    #include<cstdio>//用指针写swap()函数 void swap_1(int* p1,int* p2){int temp = *p1;*p1 = *p2;*p2 = tem ...

最新文章

  1. 内存中的rank跟bank有什么区别
  2. 利用FluidMoveBehavior制作出手机通讯录平滑的效果
  3. 云炬Android开发笔记 7登陆注册功能开发
  4. java 课程设计表达式求值_NYOJ-35-表达式求值
  5. cloudera-quickstart-vm-5.13.0-0-virtualbox 中文显示乱码
  6. 华为认证HCNA-IoT物联网工程师培训视频
  7. plt.title() 把标题置于图像下方
  8. 第二季-专题9--代码搬移不可少
  9. FLASH右键菜单的应用
  10. arcgis desktop10.2(arcmap)安装教程,已成功安装
  11. 数字人轻松学习Blender系列之八:建模-1
  12. linux超时设置函数,I/O操作上设置超时之alarm闹钟法
  13. Linux系统U盘怎么格式化,Linux下对U盘的分区与格式化
  14. 正则表达式匹配书名号内容
  15. 洛谷P3456 [POI2007]GRZ-Ridges and Valleys
  16. Win10DIY篇:Win10自制纯白图标。(完整版教程)
  17. 阿里巴巴的业务范畴/文化和价值观
  18. 绿布抠像怎么抠干净_AE如何抠取绿幕视频 干净抠像教程
  19. 北京邦威思创科技有限公司 招聘要求
  20. 数据分析入门 | kaggle泰坦尼克任务

热门文章

  1. C++ 动态申请二维数组与二维数组传参
  2. 团队的英文翻译缩写_(整理)公司部门英文缩写简称大全
  3. 走格子(bfs+dji)
  4. AirDisk-Q3C/T2/Q3S/Q3X加密空间PIN码忘记怎么找回?
  5. 【零售知识】供应商结算
  6. whatweb tree
  7. wingdings字体符号在哪_wingding、Wingdings2、wingdings3字体特殊符号与键盘字母相对应位置...
  8. 微信域名防封的3种方案
  9. Cocos2dx 3.2移植到Android 完全可行的方法
  10. 不同tric 改进的理由