知识点:移位运算符的使用
作业:完成 66>>2
要求:贴出计算步骤。
66 ==> 2进制:
66/2=33 %=0
33/2=16 %=1
16/2=8 %=0
8/2=4 %=0
4/2=2 %=0
2/2=1 %=0
1
66===>1000010
补位为8位: 01000010
右移2位: 00010000
00010000==>十进制:
0*2^0=0
0*2^1=0
0*2^2=0
0*2^3=0
1*2^4=16
再往高位 后面都是0 加合到一起=16
结果为16
最后用代码测试下
<script>
var a=66;
alert(a.toString(2))//1000010
var b=(a>>2)
alert(b)//16
</script>
66=64+2;
64==>2^6=1000000;
2==>2^1=10;
64==>1000010;
右移2位:10000;
10000==>1*2^4=16;
2016==〉二进制:
2016/2=1008 %=0
1008/2=504 %=0
504/2=252 %=0
252/2=126 %=0
126/2=63 %=0
63/2=31 %=1
31/2=15 %=1
15/2=7 %=1
7/2=3 %=1
3/2=1 %=1
2016===>11111100000
2016===>八进制
2016/8=252 %=0
252/8=31 %=4
31/8=3 %=7
3
2016===>3740
2016===>十六进制
2016/16=126 %=0
126/16=7 %=e
7
2016===>7e0
var a=2016
alert(a.toString(2))//11111100000
alert(a.toString(8))//3740
alert(a.toString(16))//7e0
补充: 得到二进制后也可以直接进行 8,16进制的转换:
二转八: 11111100000=>011 111 100 000=>3740 二转十六: 11111100000=>0111 1110 0000 =>7e0 当然遇到数字大得这么多的1和0很容易查错,当然还是最笨的方法最保险
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
var a = 66
var b= a>>2
//转二进制 66/2……0
// 33/2……1
// 16/2……0
// 8/2……0
// 4/2……0
// 2/2……0
// 1/2……1
//
//结果 1000010
//补0 01000010
//移位 00010000
//转十进制 0*2^7+0*2^6+0*2^5+1*2^4+0*2^3+0*2^2+0*2^1+0*2^0=16
//输出 16
document.write(b);
</body>
</html>
66 ==> 2进制:
66/2=33 %=0
33/2=16 %=1
16/2=8 %=0
8/2=4 %=0
4/2=2 %=0
2/2=1 %=0
1
66===>1000010
补位为8位: 01000010
右移2位: 00010000
00010000==>十进制:
0*2^0=0
0*2^1=0
0*2^2=0
0*2^3=0
1*2^4=16
再往高位 后面都是0 加合到一起=16
结果为16
最后用代码测试下
<script>
var a=66;
alert(a.toString(2))//1000010
var b=(a>>2)
alert(b)//16
</script>
66=64+2;
64==>2^6=1000000;
2==>2^1=10;
64==>1000010;
右移2位:10000;
10000==>1*2^4=16;
2016==〉二进制:
2016/2=1008 %=0
1008/2=504 %=0
504/2=252 %=0
252/2=126 %=0
126/2=63 %=0
63/2=31 %=1
31/2=15 %=1
15/2=7 %=1
7/2=3 %=1
3/2=1 %=1
1
2016===>11111100000
2016===>八进制
2016/8=252 %=0
252/8=31 %=4
31/8=3 %=7
3
2016===>3740
2016===>十六进制
2016/16=126 %=0
126/16=7 %=e
7
2016===>7e0
<script>
var a=2016
alert(a.toString(2))//11111100000
alert(a.toString(8))//3740
alert(a.toString(16))//7e0
</script>
补充: 得到二进制后也可以直接进行 8,16进制的转换:
二转八:
11111100000=>011 111 100 000=>3740
二转十六:
11111100000=>0111 1110 0000 =>7e0
当然遇到数字大得这么多的1和0很容易查错,当然还是最笨的方法最保险
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
var a = 66
var b= a>>2
//转二进制 66/2……0
// 33/2……1
// 16/2……0
// 8/2……0
// 4/2……0
// 2/2……0
// 1/2……1
//
//结果 1000010
//补0 01000010
//
//移位 00010000
//
//转十进制 0*2^7+0*2^6+0*2^5+1*2^4+0*2^3+0*2^2+0*2^1+0*2^0=16
//
//输出 16
document.write(b);
</script>
</body>
</html>