bit-shift相关内容

为什么我们需要在Java中使用移位运算符?

使用Shift运算符而不是使用除法和乘法的目的是什么? 使用移位运算符还有其他好处吗? 应该在哪里尝试使用移位运算符? 解决方案 除法和乘法不是真的使用位移运算符.它们是一些想要应用的过时的“优化". 它们是位操作,在整数值内的位级别上工作时完全必要. 例如,假设我有两个字节,分别是两字节(16位)无符号值的高位和低位字节.假设您需要构建该价值.在Java中,是: ..
发布时间:2020-09-21 07:18:04 Java开发

如何将32个字符(0/1)的序列转换为32位(uint32_t)?

我有一个从文件中读取的char数组(通常长数千个字节),全部由0和1(不是'0'和'1'组成,在这种情况下,我可以使用strtoul).我想将它们打包成单个位,从而将每个32个字符转换成单个uint32_t.我应该用32个部分编写一个移位运算,还是有一个更明智的方法? out[i/32] = data[i] ..
发布时间:2020-09-21 07:17:54 C/C++开发

使用SAR与SHR在汇编中将二进制数右移

我们知道,当我们向右移动二进制数时,它会被2除. 对于数字:1001 0001.假设它存储在AX寄存器中: 如果我们将其视为无符号数字(等于十进制的145): SHR AX, 1将使AX等于0100 1000,其等于十进制的72,这是正确的. 但是,如果我们将其视为带符号的数字(十进制等于-111):SAR AX, 1将使AX等于1100 0100等于十进制-56,并且这是错误的,因为 ..
发布时间:2020-09-21 07:17:50 其他开发

python中的零填充右移

function(e, t) { return e >> 32 - t } 我在js中有此方法,我对移位操作不甚了解.我想用python编写.如何使用python写等效代码,因为它不像JS中那样支持零填充右移运算符 >>>. 解决方案 Python中没有内置的零填充右移运算符,但是您可以轻松定义自己的zero_fill_right_shift函数: d ..
发布时间:2020-09-21 07:17:47 前端开发

VB.NET中的无符号左移?

对于人们来说,这应该很容易,但是我该如何在使用Option Strict时是VB.NET ? 也许我做错了,但是在尝试实现自己的IP2Long功能(出于我的原因)时,我正在测试以确保正确地围绕转换过程.我尝试了一些测试,但所有测试似乎都会导致错误. Dim a As Int32 a = CUint(172 ..
发布时间:2020-09-21 07:17:43 其他开发

C#左移运算符

我的一位同事写了一个我不完全理解的声明.不幸的是,他现在不可用,所以就在这里(名称已修改,我们正在Unity中开发游戏). private readonly int FRUIT_LAYERS = (1 ..
发布时间:2020-09-21 07:17:40 C#/.NET

C ++中右移的未定义行为

来自cppreference.com: 对于无符号a和具有非负值的带符号a,其值 a >> b是a/2 b 的整数部分.对于负a,a的值>> b是实现定义的(在大多数实现中, 算术右移,以便结果保持负数.) 在任何情况下,如果右操作数的值为负或为 大于或等于提升后的左操作数中的位数, 行为是不确定的. 如果右操作数大于或等于提升后的左操作数的位数,为什么会有不确定的行为? 在我 ..
发布时间:2020-09-21 07:17:33 C/C++开发

对于Python 3.x整数,比位移快两倍吗?

我正在查看 sorted_containers 的来源,惊讶地看到此行: self._load, self._twice, self._half = load, load * 2, load >> 1 此处load是整数.为什么在一个位置使用位移,而在另一个位置使用乘法呢?移位可能比整数除以2快,但这是合理的,但是为什么不还用移位代替乘法呢?我对以下情况进行了基准测试: (次数,除 ..
发布时间:2020-09-21 07:16:30 Python

Verilog桶式移位器

我想在verilog中创建一个64位的桶形移位器(现在向右旋转).我想知道是否有一种无需编写65个零件的案例说明就可以做到的方法吗?有没有办法编写一些简单的代码,例如: Y = {S[i - 1:0], S[63:i]}; 我在Xilinx上尝试了上面的代码,并得到一个错误:我不是常数. 主要问题:在没有大量案件陈述的情况下,有没有办法做到这一点? 解决方案 为简化 ..
发布时间:2020-09-21 07:16:22 其他开发

从RGB整数转换为十六进制

我所拥有的是R:255 G:181 B:178,并且我正在C#中工作(更具体地说,对于WP8) 我想将其转换为十六进制数字以用作颜色(以设置WriteableBitmap的像素颜色).我正在做的事情如下: int hex = (255 ..
发布时间:2020-09-21 06:21:31 C#/.NET