您当前的位置首页/JavaScript/ 正文

JS的按位操作

admin 最后更新时间 2018-07-05 16:25:01   124浏览
按位操作的特点:计算速度最快,因为是数值的最底层操作,速度非常快。 但是位运算符在实际中用的不多,因为涉及到底层原理,很多人不会用,所以对大部分人来说可读性不佳,多人协作的项目还是少用,避免别人看不懂。 按位非:操作数的负数减一 ``` var num = 1 var num2 = -num - 1 var num3 = ~num ``` 结果都一样是-2,但是按位非操作是直接的二进制操作,属于底层操作。 另外的就还有 按位与 & 按位或 | 按位异或 ^ 左移 << 右移>> 无符号右移>>> 用处:摘自网络,6的一比 1、使用&运算符判断一个数的奇偶 偶数 & 1 = 0 奇数 & 1 = 1 2、使用~~,>>,<<,>>>,|来取整 ~~3.14 = 3 3.14 >> 0 = 3 3.14 << 0 = 3 3.14 | 0 = 3 3.14 >>> 0 = 3(>>>不可对负数取整) 3、使用&,>>,|来完成rgb值和16进制颜色值之间的转换 16进制颜色值转RGB: ``` function hexToRGB(hex){ var hex = hex.replace("#","0x"), r = hex >> 16, g = hex >> 8 & 0xff, b = hex & 0xff; return "rgb("+r+","+g+","+b+")"; } ``` RGB转16进制颜色值: ``` function RGBToHex(rgb){ var rgbArr = rgb.split(/[^\d]+/), color = rgbArr[1]<<16 | rgbArr[2]<<8 | rgbArr[3]; return "#"+color.toString(16); } ``` 运行hexToRGB("#ffffff")返回"rgb(255,255,255)" 运行RGBToHex("rgb(255,255,255)")返回"#ffffff"