1.其他进制转十进制
parseInt("16",16) 变量/声明我是几进制
parseInt("12",8)
parseInt("1010",2)
2.十进制转其他进制
var v1 = 24;
v1.toString(16) //转16进制
v1.toString(8) //转8进制
v1.toString(2) //转2进制
v1.toString(10) //转10进制
3.
parseInt(num,2).toString(8) //2进制转8进制
parseInt(num,8).toString(2) //8进制转2进制
位操作符 :
操作的是二进制数,为了提高计算机的运行速度.
操作32位
按位非(~)
把二进制数 1 变0 ,0变1.
var a=25; var b= ~a; b=?
二进制:000000000000000011001
按位非:111111111111111100110
结果:-26
按位与(&)
两个数字的二进制数,对应位置都为1时,结果才为1,否则为0
var a =25; var b=a&3; b=?
二进制:000000000000000011001 //25的
二进制:000000000000000000011 //3的
按位与:000000000000000000001
结果:1
按位或(|)
两个数字的二进制数,对应位置都为0时,结果才为0,否则为1;
var a =25; var b=a|3; b=?
二进制:000000000000000011001 //25的
二进制:000000000000000000011 //3的
按位或:000000000000000011011
结果:27
左移:
把数字的二进制向左移动,空出来的用0补齐
var a =25; var b=a<<5; b=?
二进制:000000000000000011001 //25的
二左移:000000000001100100000
结果:800
右移:
把数字的二进制向右移动,空出来的用0补齐
符号位是啥,我就填啥
var a =25; var b=a>>5; b=?
二进制:000000000000000011001 //25的
二右移:000000000000000000000
结果:0
var a =25; var b=a>>3; b=?
二进制:000000000000000011001 //25的
二右移:000000000000000000011
结果:3
无符号右移:
不管符号位是啥,右移只补0
var a =25; var b=a>>>3; b=?