o*g
4 楼
看来你不知道啥是位移
比如一个byte: 0000 0001
左移一位就是0000 0010
位移运算老快了。所以有的需要*4之类的就可以左移两位,速度上快N倍。
计算机无非是用0和1来表示你定义的东西,失去定义就剩一些0和1了,没意义。
比如定义一个byte的最右一位表示有无太阳,1表示有,0表示没有
这个byte的右数第二位表示有无月亮,1表示有,0表示没有
那0000 0001就表示有太阳没有月亮。左移一位就变成0000 0010,变成有月亮没有太阳
了。
对了,对位移操作的变量更应该关心其长度。
比如it是int可能是32位的,64位的或128位的。(也可能是其他长度的)
要是128位的,那结果就不是0了
【在 L*******g 的大作中提到】
: 谢谢。it是int型,这个移位的效果/用途是什么?
比如一个byte: 0000 0001
左移一位就是0000 0010
位移运算老快了。所以有的需要*4之类的就可以左移两位,速度上快N倍。
计算机无非是用0和1来表示你定义的东西,失去定义就剩一些0和1了,没意义。
比如定义一个byte的最右一位表示有无太阳,1表示有,0表示没有
这个byte的右数第二位表示有无月亮,1表示有,0表示没有
那0000 0001就表示有太阳没有月亮。左移一位就变成0000 0010,变成有月亮没有太阳
了。
对了,对位移操作的变量更应该关心其长度。
比如it是int可能是32位的,64位的或128位的。(也可能是其他长度的)
要是128位的,那结果就不是0了
【在 L*******g 的大作中提到】
: 谢谢。it是int型,这个移位的效果/用途是什么?
O*d
6 楼
left shift operation. 楼主需要复习一下二进制。
相关阅读
春运网站架构之争 MapReduce vs MPIwell, a good architect don't need to be an expert on languagoodbug短短6行代码7个常识错误已经在家一个多月没去office了真正有货的,没有骂人的Re: 大家都是怎么总结面试失利原因的?。。 (转载)魏老师的方案没有问题要魏老师来解决什么问题?大家讨论一下C++模板吧 (转载)startup招2个人,在san jose人区别于畜生,一个最大的特点再给魏老师的方案打个补丁看来以后要把春运买票网设计当做面试考题了Cassandra vs Riak回goodbug,关于DC的failover策略,兼普及基础知识HackerCup 2014魏老师你威胁要告我老板,我好怕怕哦来,魏老师来说说,这是不是你当年的事迹?如果要做一个铁路售票网站老魏你玩过chaos monkey吗?