问题标签 [bitwise-operators]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - javascript中按位运算符的性能
在 C++/java/C# 等语言中使用位运算符的主要思想之一是它们非常快。但是我听说在 javascript 中它们非常慢(诚然,今天几毫秒可能并不重要)。为什么会这样?
(这个问题讨论了何时使用按位运算符,所以我将这个问题的重点转移到性能上。)
operators - 使用 ALU 运算符的一位右桶移位?
我想知道是否有一种仅使用 ALU 运算符(NOT、OR、AND、XOR、ADD、SUB)对 8 位二进制值执行右移的有效方法
我已经能够通过将 8 位二进制值与自身相加来实现左移,因为左移相当于乘以 2。但是,我想不出一种方法来实现右移。
到目前为止,我想出的唯一方法是只执行 7 次左桶移位。这是唯一的方法吗?
c# - C# 按位 OR 需要使用字节 *sometimes* 进行强制转换
我在 C# 编译器中发现了一个奇怪的情况。为什么需要下面的演员表?
谢谢。
bitwise-operators - 我应该使用哪些位移技术?
我很想知道人们为自己建立了哪些使用模式,以便在客户端/服务器、Web、桌面开发等现代环境中利用位移。除了设备驱动程序、asm 之外,在软件开发中位移位的用途是什么?
我应该使用哪些按位运算/移位技术?我可以重用哪些算法?
php - 为什么这句话在 PHP 中是正确的?
我不明白为什么 PHP 中的这个语句会回显“whaaa?” ——(0x0F | 0xF0)
应该0xFF
没有吧?
c++ - 在 C++ 中,哪种递增方法更胜一筹?
我看到有人使用这种方法来增加一个变量:
该方法是否比仅使用更好/更快:
如果它只是重复,为什么有人会使用按位和 0xf?
scheme - 在Scheme中查找一个数字是否是2的幂
我对 Scheme 还很陌生,正在尝试从头开始自己学习。我被困在这个问题的语法上。我知道如果我想知道一个数字是否是 2 的幂,例如在 C 中,我会简单地做:
这将返回真或假。我如何能够将其转换为 Scheme 中的几行简单的行?
glsl - 如何在 glsl 中执行位操作
如何在 glsl 中执行位操作?
使用常规 C 风格的位运算符|
, &
, ^
, or!
不起作用。
c++ - 如何对浮点数执行按位运算
我试过这个:
我收到一个编译器错误,提示操作数&
不能是浮点类型。
当我做:
我让程序运行。唯一的一点是,按位运算是对四舍五入后获得的数字的整数表示进行的。
以下也是不允许的。
我不明白为什么int
可以强制转换为void*
但不能float
。
我这样做是为了解决堆栈溢出问题如何使用遗传算法求解线性方程组中描述的问题?.
java - Java 中按位运算符对布尔值的影响
位运算符应该移动变量并一点一点地对它们进行操作。在整数、长整数、字符的情况下,这是有道理的。这些变量可以包含由其大小强制执行的所有值范围。
然而,在布尔值的情况下,一个布尔值只能包含两个值。1 = 真或 0 = 假。但是布尔值的大小没有定义。它可以大到一个字节,也可以小到一点。
那么在布尔值上使用按位运算符有什么影响?JVM 是否本质上将其转换为普通的逻辑运算符并继续前进?出于操作的目的,它是否将布尔值视为单个位实体?还是结果与布尔值的大小一起未定义?