bit-shift相关内容

Python的按位移位真的很慢吗?

我必须忽略一些东西,但是真的不明白为什么Python代码这么慢... 对数组中元素在[-1,000,000..1,000,000]范围内的唯一元素进行计数,并使用位向量执行此操作.使用BitSet的Java代码比Python的速度(大约9秒)快50倍. 这可能是因为当我初始化bitvector = 0时,Python没有保留足够的内存并且随着位向量的增长需要复制位向量吗? Pyt ..
发布时间:2020-09-21 07:23:13 Java开发

当b大于a中的位数时,右移(a >> b)的不确定行为.

显然,右移操作的行为: a >> b 当b >= sizeof(a)*CHAR_BIT时, 在C和C ++中未定义(而在正常情况下,由于向右移位而从左侧引入的“新位"等于零). 为什么这种不确定的行为比b >= sizeof(a)*CHAR_BIT时将结果设置为零更好? 解决方案 我们可以从 此答案来自C背后的两个通用设计原则: 该语言不应在实现上增加不必要的开销 ..
发布时间:2020-09-21 07:23:04 C/C++开发

屏蔽并提取C中的位

我一直在寻找有关遮罩的帖子,但仍然无法理解如何从C中的数字中提取某些位. 假设我们有一个int number 0001 1010 0100 1011,那么它的十六进制表示形式是x1a4b对吗?如果我想知道第5到第7个数字(在这种情况下为101),我应该使用int mask= 0x0000 1110 0000 0000, int extract = mask&number吗? 我又如何检 ..
发布时间:2020-09-21 07:22:02 其他开发

为什么我会得到奇怪的结果,将其移位为负值?

此问题不是此问题的重复项. > 我遇到一种情况,我可能不得不将一个(正)数左移一个负值,即8 << -1.在那种情况下,我希望结果是4,但是我以前从未做过.因此,我编写了一个小测试程序来验证我的假设: for (int i = -8; i ..
发布时间:2020-09-21 07:20:51 C#/.NET

撤消换档而不会被截断

我对此有些困惑.值在转换后不应该截断吗? 有人知道为什么会这样吗? long a, b, c, n; //assign any value to a, set b and c to 0x000...0 n = 128; //any number works; b = a > n; a == (b >> n); // True a == c; //True; ..
发布时间:2020-09-21 07:20:44 C/C++开发

使用位移计算C中有符号的长最大值

昨天刚开始学习C,这将在新的一年让我发疯……尝试使用位移运算来打印不同的int范围.除了有符号的最大/最小长整型值之外,一切都正常.无法弄清楚为什么(1 #include void print_range() { ..
发布时间:2020-09-21 07:20:42 其他开发

如何通过移位将多个小整数保存在一个整数中?

我在int[][][]数组中工作,我需要从静态函数返回该数组一个字段的地址. 考虑到数组的维数将保持较小(int[32][32][32])的事实,我想到了返回一个包含所有三个值的数字,而不是使用包含三个数字的数组. 我已经有了一个可行的解决方案,我将我的电话号码打包成一个字符串,然后通过Integer.parseInt(String)在接收方法中将其解压缩. 不幸的是,这在运行时方面效果不佳 ..
发布时间:2020-09-21 07:19:40 Java开发

不需要的Java移位行为

我正在为正在执行的某些计算生成位掩码,在这里我需要屏蔽一个int,以便除x最右边的位以外的所有其他位都变为零.我这样做是: int mask = ~(-1 >> 32 - x; 在x = 0时,它应该返回0,但返回-1.以某种方式 ..
发布时间:2020-09-21 07:19:36 Java开发

从8位转换为1个字节

我有一个8位的字符串,我想将其转换为1个字节.我不确定为什么我的功能不能正常工作.我有8位存储到8个未签名字符的数组中.到目前为止,这是我的方法: unsigned int bitsToBytes(unsigned char *bits) { unsigned int sum = 0; for(int i = 7; i >= 0; i--) { sum += bits[i ..
发布时间:2020-09-21 07:19:29 C/C++开发

PHP无符号右移-故障

因此,当使用我的方法在PHP中执行(>>>)无符号右移时,当数字涉及负数时,结果将不正确. PHP应用程序结果: INPUT: 10 >>> 3 INPUT: -10 >>> 3 OUTPUT: 1 OUTPUT: 2684354558 JAVA申请结果: INPUT: 10 >>> 3 INPUT: -10 >>> 3 OUTPUT: 1 OUTPUT: 536870910 ..
发布时间:2020-09-21 07:19:22 PHP

Ruby中的位移

我目前正在将Visual Basic应用程序转换为Ruby,因为我们正在将其移至Web.但是,在转换某些算法时,我遇到了有关移位的问题. 据我所知,问题在于VB对Integer类型执行的大小掩码(如那么问题是 Visual Basic Dim i As Integer = 182 WriteLine(i ..
发布时间:2020-09-21 07:19:19 其他开发

用位移找到整数平方根的最快方法是什么?

我一直在寻找最快的方法来计算数字(整数)的平方根(整数).我在Wikipedia中遇到过这种解决方案,该解决方案可以找到一个数字的平方根(如果是一个完美的平方)或找到其最近的下一个完美正方形的平方根(如果给定的数字不是一个完美的平方: short isqrt(short num) { short res = 0; short bit = 1 ..
发布时间:2020-09-21 07:19:15 其他开发