Questions tagged «bit-shift»

位移操作将包含在二进制数字或位模式中的位向左或向右移动。

9
什么是按位移位(bit-shift)运算符,它们如何工作?
我一直在尝试业余时间学习C,其他语言(C#,Java等)具有相同的概念(并且通常具有相同的运算符)... 我想知道是,在核心层,什么是位移(<<,>>,>>>)这样做,它可以帮助什么问题解决了,什么陷阱潜伏在弯曲?换句话说,这是一个绝对的初学者指南,它对所有好处都有好处。

3
什么是C中的>>> =运算符?
一位同事对此感到困惑,我无法弄清楚这个C程序实际上是如何编译和运行的。这是什么>>>=运算符和奇怪的1P1文字?我已经在Clang和GCC中进行了测试。没有警告,输出为“ ???” #include <stdio.h> int main() { int a[2]={ 10, 1 }; while( a[ 0xFULL?'\0':-1:>>>=a<:!!0X.1P1 ] ) printf("?"); return 0; }



1
对于Python 3.x整数,比位移快两倍?
我正在查看sorted_containers的来源,很惊讶地看到这一行: self._load, self._twice, self._half = load, load * 2, load >> 1 这load是整数。为什么在一个位置使用位移,而在另一位置使用乘法?移位可能比整数除以2快,但这是合理的,但是为什么不还用移位代替乘法呢?我对以下情况进行了基准测试: (时间,分) (班次,班次) (时间,班次) (平移,除法) 并发现#3始终比其他替代方法快: # self._load, self._twice, self._half = load, load * 2, load >> 1 import random import timeit import pandas as pd x = random.randint(10 ** 3, 10 ** 6) def test_naive(): a, b, …





5
按位运算符和“字节序”
是否字节顺序在所有问题与位操作?任一逻辑或移位? 我正在从事按位运算符的作业,我无法在上面做任何事情,而且我想我对持久性很感兴趣。就是说,我使用的是小端机(就像大多数机器一样),但这是否需要考虑?或者这是一个浪费的事实? 万一重要,我正在使用C。

3
为什么11010100 << 1等于110101000,而不是10101000?
为什么当我尝试移位11010100 2的位时,结果是110101000 2,而不是10101000 2。 int a = Integer.parseInt("11010100", 2) &lt;&lt; 1; 我尝试这样做: int a = (byte)(Integer.parseInt("11010100", 2) &lt;&lt; 1); 但是,如果输出值大于128,则一切都变为负数,这是合乎逻辑的。如何使位数不变?
40 java  bit-shift 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.