作业里的小问题

来源:

Lunaticf

2016-07-22

//  任务二:(2) 完成 width 每个柱图中项目的宽度计算。(补全 var width = ???)
 var width = ( 100 / cfg.data.length ) >> 0 ;

这里是右移0位的意思吗 为什么右移0位能去掉小数部分....==

写回答

1回答

Lyn

2016-07-25

呃~ http://www.cnblogs.com/webooxx/p/5614020.html


Javascript 中右移0位可以用来快速去掉小数,关于位移运算的定义:

右移运算是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位或者一律补0,或者补符号位。

实际看下效果:

32.5 >> 0  // 32

 

右移是什么作用?

 

(32).toString('2') // 转换为2进制,得到 100000

( 32 >> 1 ).toString(2) // 右移1位,得到 10000

 

对比下:

 

100000  // 实际值 32

010000  // 实际值 16

 

怎么去掉小数位?

 

32.5 >>1 << 1

 

或者直接

 

32.5 >> 0


0
2
Lunaticf
非常感谢!
2016-07-25
共2条回复

Web App用组件方式开发全站

用HTML5/CSS3/JS流行技术,实现移动端可视化数据报告

3164 学习 · 516 问题

查看课程