javascript - js中的与运算是怎么算的,为什么1000&1100的结果是72而不是1000

查看:105
本文介绍了javascript - js中的与运算是怎么算的,为什么1000&1100的结果是72而不是1000的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

js中的与运算是怎么用的,我console.log(110& 111)结果就是110,是对的,但是console.log(1000&1100)结果就是72,为什么不是1000,就是换算成十进制,这个72也是不对的,不知道是怎么回事?

console.log(110& 111);输出110
console.log(1000&1100);输出72

哪位大神给解答下?

解决方案

跟js没关系 这是位运算 基于2进制 大学学C必然讲这个

简单说

110 = 1*64 + 1*32 + 0*16 + 1*8 + 1*4 + 1*2 + 0*1 = 1101110(2)
111 = 1*64 + 1*32 + 0*16 + 1*8 + 1*4 + 1*2 + 1*1 = 1101111(2)
110 & 111 = 1101110(2) & 1101111(2) = 1101110(2) = 110

1000 = 1*512 + 1*256 + 1*128 + 1*64 + 1*32 + 1*16 + 1*8 + 0*4 + 0*2 + 0*1
     = 1111111000(2)
1100 = 1*1024 + 0*512 + 0*256 + 0*128 + 1*64 + 0*32 + 0*16 + 1*8 + 1*4 + 0*2 + 0*1
     = 10001001100(2)
1000 & 1100 = 1111111000(2) & 10001001100(2) = 1001000(2) = 1*64 + 1*8 = 72

&表示按位与,计算方式为先转换为2进制,然后每一个对应位置的同时为1得1,其他情况为0,得到2进制,再转为10进制。
电脑里储存数字用的是2进制,按位与是cpu最最最简单的操作之一,性能快。

这篇关于javascript - js中的与运算是怎么算的,为什么1000&1100的结果是72而不是1000的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆