bit-shift

    1热度

    1回答

    基于以下简单的程序,按位左移运算符仅适用于32位。这是真的吗? #include <iostream> #include <stdlib.h> using namespace std; int main(void) { long long currentTrafficTypeValueDec; int input; cout <<

    7热度

    3回答

    要在同一页面上,我们假设sizeof(int)= 4和sizeof(long)= 8。 给定一个整数数组,将逻辑上将数组左移或右移的有效方法是什么? 我正在考虑一个辅助变量,比如long,它将计算第一对元素(索引0和1)的位移并设置第一个元素(0)。以这种方式继续,元素(索引1和2)的位移将是计算机,然后索引1将被设置。 我认为这实际上是一个相当有效的方法,但也有缺点。我不能移位超过32位。我认为

    1热度

    2回答

    免责声明:我是一个ASM新手。我可能需要检查我的二进制补什么的充分理解:( 我很困惑,以下目的:?? .... BL some_func MOV R3, R0,LSL#16 MOVS R3, R3,LSR#16 .... 为什么向后移位和MOVS

    5热度

    1回答

    是否曾有理由认为Java中的>>(带符号)和>>>(无符号)右移位运算符的性能会有所不同?我无法检测到我的机器上有任何差异。 这纯粹是一个学术问题;我肯定它永远不会成为瓶颈。我知道:最好写下你最重要的东西;例如,使用>>除以2。 我认为这取决于哪些体系结构将哪些操作实现为指令。

    2热度

    2回答

    我发现了一些我无法解释的奇怪东西。如果某人在这里可以看到发生了什么或为什么,我想知道。我正在做的是含有高排列像这样的12位无符号短: 1111 1111 1111 0000 那么我想希夫位,这样在短期内保持7位与MSB作为垫每个字节。在什么上面给出的结果应该是这样的: 0111 1111 0111 1100 我所做的是这样的: unsigned short buf = 0xfff; //alig

    2热度

    3回答

    我有一个512字节长的数据的二进制块,我想知道如果我想将它转移一次,最有效的方法是什么。我现在最好的猜测是(现在对程序集来说很新),我将不得不首先检查一个块(可能是int),看看它会移出什么,移位,然后进入前一个int会发生什么变化然后继续执行这个数据下移。有更容易的方法吗?如果我必须使用这种携带技术,我可以移动的最大块是什么?双字?四字?

    3热度

    2回答

    好了,一个简单的问题在这里 我学习了一些组件,以及将一些汇编程序返回到VB.NET 现在,有我有麻烦,组装特定的代码行,假设如下: EBX = F0D04080 然后下面一行被执行 SHR EBX, 4 这使我的弗洛翼:现在 EBX = 0F0D0408 ,在VB.NET,我做以下 variable = variable >> 4 应该给我同样的...但它的不同,而不是价值0F0D

    4热度

    7回答

    我可以知道我该怎么办PHP >>>?这些运算符在PHP中不可用,但可以使用Javascript。 我好不容易才发现的功能如下: function zeroFill($a, $b) { $z = hexdec(80000000); if ($z & $a) { $a = ($a>>1); $a &= (~$z); $a |

    0热度

    4回答

    我已经有了用C这样的码值: unsigned char const data[ ] = {0x0a, 0x1d, 0xf0, 0x07}; 我需要提取它使得最终的价值是: 0xa1df7 我只能够提取并得到它的工作,如果有至少1个零的十六进制值: unsigned char const data[ ] = {0x0a, 0xd0, 0xf0, 0x07}; 使用下面的代码: for(i

    3热度

    6回答

    我正在教我自己的Java和我工作通过Java中的思维练习。 在116页练习11中,您应该右键移动整数的整数位置,并用Integer.toBinaryString显示每个位置。 public static void main(String[] args) { int i = 8; System.out.println(Integer.toBinaryString(i)); int maxIte