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 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 谢谢。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 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 谢谢。it是int型,这个移位的效果/用途是什么?
O*d
6 楼
left shift operation. 楼主需要复习一下二进制。
相关阅读
微软的visual studio code真心不错设计一种c++语言的新特性sysdig咋样?教小孩C++?有什么东西用来做机器间的数据转移的?swift现在有GC了吗有什么 open source 让做平台发 post, comments, votes?要开始学PHP了,一头雾水啊python在2009年差点死掉,后来为什么起死回生了?有人用parse-server做新项目吗提问:Python 2.7.2 on a Mac with SSL维基解密发文指控希拉里团队号召民众暗杀阿桑奇 (转载)还有人写汇编吗,科学计算类,急问国内的“技术专家”的准确英文翻译是什么?大公司浪费资源/拖沓, 其实绝不是因为无能后端,Enterprise Integration方面有什么好的会议?打算上马parse server一个hobby项目了要将数据同时生成JSON和XML, 应该先生成哪个,再转换成另一个无数微服务板上有人用过electron嘛