什么是二进制,进制之间是如何转换的,浅显易懂的,一看就会

什么是二进制呢?
二进制数据是用0和1两个数码来表示的数,它的基数为2,进位规则是逢二进一

加法:0+0=0;1+0=1;0+1=1;1+1=0(等价于10,向前进一)

案例(前面用0补齐)
1+1=10,10+1=11,11+1=100,100+1=101,101+1=110,110+1=111,111+1=1000 ...

 

 减法: 0-0=0,1-0=1,1-1=0,0-1=1
案例:101010-1101=1111
下图是什么意思呢,就是向前借来的当做2(即10)来计算
即自己向前借一位,当2用,借出给右边的时候,借出1个自己还留1.
下图中括号的公式为(借来的-借出的+上面已有的-下面要减的)

从右到左计算步骤
倒数第1列:
    当前为0-1,需要向倒数第2位借一(注意此处并没有借出),即2+0-1=1 (借来的+上面已有的-下面要减的)
倒数第2列:
    由于倒数第二位上面的1被借走了,所以当前为0-1,需要向倒数第三位借,倒数第三位为0不够,那么倒数第三位需要再往前借,借        到后再借给当前的倒数第二位(注意此处,借过来的并没有再借出),就是2+0-1=1 (借来的+上面已有的-下面要减的)
倒数第3列:
    由于步骤2像前借了,所以此处借过来的为2-1=1(2为像前借过来的,1为被后面借走的) ,所以当前为1-0,即2-1+0-0=1
倒数第4列:
    步骤2的时候已经被借走了,所以当前为0-1,像倒数第5位借,倒数第5位没有,接着向前借(同步骤2),借到后,2-1+1-1=1
倒数第4列:
    同步骤2.结果为2-1+0-1=0
倒数第5列:
    被借走了,结果为0-0=0
所以最终的结果为:001111

乘法:0×0=0,1×0=0,0×1=0,1×1=1
下图1011*101=110111
即:下面的那行数字从右到左,分别乘以上面的数字,并对其,乘出来的结果相加即可

 

除法: 0÷1=0,1÷1=1

二进制就是等于2时就要进位。
0=00000000
1=00000001
2=00000010
3=00000011
4=00000100
5=00000101
6=00000110
7=00000111
8=00001000
9=00001001
10=00001010
11=00001011 
...

 

进制转换
十进制二进制相互转换(10进制即正常使用的数字)

60 转二进制 111100 计算如下

二进制转十进制:
  
        

 二进制和八进制的转换
下图是二进制数与八进制数之间的对应关系表

八进制转二进制(取三合一),111100 的八进制为 74
注意,在向左(或向右)取三位时,取到最高位(最低位)如果无法凑足三位,就可以在小数点的最左边(或最右边)补0,进行换算,如图二

八进制转二进制(取一补三)
 

二进制和十六进制的转换同二进制八进制的转换一样,不过是(取四合一)

注意:二进制转16进制的时候:当二进制的计算计算结果大于等于10(十进制)的时候 ,就要用字母a-f表示,

二进制二进制转十进制结果
10108+0+2+0 = 10a
10118+0+2+1 = 11b
11008+4+0+0 = 12c
11018+4+0+1 = 13d
11108+4+2+0 = 14e
11118+4+2+1 = 15f

 

拓展

1.进制之间的常用转换方法:
多进制转十进制:parseInt(转换,几进制) ;
2转10: parseInt(111100,2); // 60
8转10: parseInt(74,8);  // 60
16转10: parseInt('6abc3a',16);  // 6995002    === >  #6abc3a 色值

十进制转2进制,8进制,16进制使用(number).toString(进制)
(60).toString(2); // 111100
(60).toString(8); // 74
(60).toString(16); // 3c
(6995002).toString(16); // 6abc3a

简写
二进制,以0b,比如 0b111100 => 60;
八进制,以0开头。比如60 => 074; //  parseInt('74',8) => 60
十进制就正常写法,比如60 => 60;
十六进制,以0x开头。比如60 => 0x3c; // parseInt('3c',16) => 60
在console中看下:

 

  • 31
    点赞
  • 139
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值