1545得票10回答
什么是位移运算符(bit-shift)以及它们如何工作?

我在业余时间尝试学习C语言,其他编程语言(如C#,Java等)也有相同的概念(并且通常具有相同的运算符)... 从基本层面上看,什么是位移操作符(<<,>>,>>>),它能解决哪些问题,以及需要注意哪些问题?换句话说,这是一篇初学者指南,介绍位移操作符...

330得票19回答
在C语言中,使用移位运算符进行乘法和除法是否真的更快?

可以使用位运算符实现乘法和除法,例如i*2 = i<<1 i*3 = (i<<1) + i; i*10 = (i<<3) + (i<<1) 那么,使用类似于 (i<<3)+(i<<1) 这样的方式来乘以10是否比直接使用 ...

296得票3回答
C语言中的">>>="运算符是什么?

这是同事给我的一道谜题,我无法弄清楚这个C程序是如何编译和运行的。 >>>= 运算符是什么意思?还有奇怪的 1P1 字面量是什么?我已经在Clang和GCC中测试过了,没有警告,输出是"???"。#include <stdio.h> int main() { ...

178得票11回答
在C语言中,移位运算符(<<,>>)是算术运算符还是逻辑运算符?

在C语言中,移位运算符(&lt;&lt;,&gt;&gt;)是算术运算符还是逻辑运算符?

174得票7回答
JavaScript中的>>>运算符是什么,如何使用?

我在查看 Mozilla 的代码,它向数组添加了一个 filter 方法,其中有一行代码让我感到困惑。var len = this.length &gt;&gt;&gt; 0; 我之前从未见过JavaScript中使用 >>> 。它是什么?它有什么作用?

170得票9回答
这段代码如何打印出“hello world”?

我发现了这个奇怪的事情:for (long l = 4946144450195624l; l &gt; 0; l &gt;&gt;= 5) System.out.print((char) (((l &amp; 31 | 64) % 95) + 32)); 输出:hello world ...

165得票1回答
Python 3.x整数中比位移运算快两倍的方法是什么?

我在查看 sorted_containers 的源代码时,惊讶地发现了这行代码:self._load, self._twice, self._half = load, load * 2, load &gt;&gt; 1 在这里,load是一个整数。为什么有些地方要用位移,另一些地方要用乘法呢?...

158得票9回答
Java中的移位运算符是如何工作的?

我正在尝试理解位移运算符,但是理解得不太好。 当我尝试执行以下代码时:System.out.println(Integer.toBinaryString(2 &lt;&lt; 11)); System.out.println(Integer.toBinaryString(2 &lt;&lt; ...

85得票5回答
按位运算符和“字节序”

在位运算中,endianness对逻辑或移位操作有影响吗? 我正在做有关位运算符的作业,但我无法理解它,我认为我已经陷入了endianness。也就是说,我正在使用小端机器(像大多数机器一样),但这是否需要考虑还是一个浪费的事实? 如果有影响的话,我正在使用C语言。

83得票42回答
你是否曾经在真实项目中使用过位移操作?

你是否曾经在实际编程项目中使用过 位移操作?大多数(如果不是全部)高级语言都有这种操作符,但是什么情况下才需要使用它们呢?