bit-shift相关内容
阅读伟大的答案绝对初学者指南位转移后? 我测试的索赔(原文如此): 3758096384<< 1 从Chrome的控制台: 3758096384<< 1> 7683758096384<< 2> 15363758096384<< 1> -1073741824 解决方案 这是工作中的逗号操作符。它实际上是 384 LT
..
我有使用Java这种行为: INT B = 16; 的System.out.println(b将;小于30); 的System.out.println(B<< 31); 的System.out.println(B<< 32); 的System.out.println(b将;γ-33); 输出: 0 0 16 32 就是Java移位循环?如果不是,为什么我得到0时,
..
我如何按位右移/留在VB.NET?它甚至有运营商对于这一点,或者我必须使用一些实用的方法是什么? 解决方案 VB.NET已移位运算符( << 和的 >> )自2003年以来
..
这本书“C完全参考手册”由赫伯特Schildt说:“(在签署负整数的情况下,右移将导致1被带进来,这样的符号位为preserved。 )“ 什么是$ P $的pserving符号位点? 此外,我认为这本书是指当负数重新$ P $的情况下使用符号位psented,而不是使用的补。但仍即使在这种情况下,推理似乎没有任何意义。 解决方案 该Schildt本书被广泛认为是异常恶劣。 事实上,
..
比方说,我有4个32位整数数组,我用它来存储128位的数字。 我怎么能离开执行,并在此128位数字右移? 谢谢! 解决方案 无效shiftl128( unsigned int类型和放大器;一个, unsigned int类型和放大器; b, unsigned int类型和放大器; C, unsigned int类型和放大器; D, 为size_t
..
为什么Java的回报的 -2147483648 的时候我位移位的 1 LT;< 63 的? 预期的结果是9 223 372 036 854 775 808,与Wolfram Alpha的,我的计算器测试。 我测试: System.out.print((长)(1 LT;≤(63))); 解决方案 还有需要注意的行一个重要的事情 System.out.print((长)(1
..
林有一些麻烦了解如何以及为什么code工作它的方式。我在这个任务完成合作这部分,我不能让阿霍德他找出如何以及为什么这个工程。我已经尝试了一些不同的东西不懂,但任何帮助将是非常美联社preciated。这code是用2的补数和一个32位再presentation。 / * * fitsBits - 返回1,如果x可以被重新presented作为 * n位,补整数。 * 1< = N
..
我需要提取特定部分(无位)一个短 C语言的数据类型。 例如我有52504二进制为11001101000 11000,我想首先6(FROM LSB - > MSB即十进制011000 24)位和10位(11001101000十进制820)休息。 同样我想这个功能太推广到提取特定没有给出“开始”和位“结束”(位即相当于大块一些十进制值)。 我检查的其他职位,但这些都没有帮助,给出功能都没有太大一
..
我见过的运营商>> 和<< 各类code我已经看了(其中没有我其实明白),但我只是想知道他们实际上做什么,什么他们的一些实际用途。 修改 如果轮班像 X * 2 和 X / 2 ,究竟是从实际使用的真正区别在 * 和 / 运营商?是否有性能差异? 解决方案 下面是一个小程序在这里你可以行使一些位操作,包括转移。 您有位的集合,并移动其中一些超出边界: 11
..
您好快速的问题关于位移 我在十六进制的值=新的字节[] {0x56,0xAF执行}; 这是0101 0110 1010 1111 我想第一n位,例如12 再推卸其余4(16-12)获得0000 0101 0110 1010(1386 DEC) 我不能换我的头周围并使其可伸缩的N位。 谢谢! 解决方案 早前I codeD这两个功能,第一个移位位的字节[]指定金额到左侧,第二次做同
..
在Java中,为什么-32 >>> -1 = 1?结果 这不是具体到刚刚-32。它只要他们不是太大,适用于所有负数。结果 我发现结果 点¯x>>> -1 = 1结果 点¯x>>> -2 = 3结果 点¯x>>> -3 = 7结果 点¯x>>> -4 = 15结果 给出0> X>一些大的负数 是不是>>> -1同样为<< 1?但-32 LT;< 1 = -64。结果
..
可能重复:结果 为什么1>> 32 == 1? -1为int转换为二进制是32 1的psented重新$ P $。 当我31次右移它,我得到1(31 0和一个1)。 但是,当我32次右移,我得-1一次。 难道不应该等于0? 解决方案 Java规范解释的移位运算符如下: 如果左侧操作数的提升的类型为 INT ,只有右手操作的五个最低阶位被用作移位距离。这是因为
..
这是一个多语言设计的,而不是一个编程的问题。 以下是从
..
我想了解位运算符的签署和无符号类型的行为。根据ISO / IEC的文件,以下是我的理解。 向左移位运算符 的结果E1<< E2 ,是E1左移E2位的位置 在帐户左移的空出的位置将由零填充。 E1作为签署非负: E1<< E2 将导致以E1乘以2电源E2,如果值由结果类型重新presentable。 Q1:什么关于签署底片 Q2:我无法理解
..
正如我前面提到的,我经历K&安培; R,和整体在做没事吧。然而,在第2章(第2.9节)对位运算符节,我无法理解怎么样的方法之一工作 - 作为一个结果,我在与相关的练习麻烦。 (这不是对位移我以前问题的欺骗,顺便说一句,这是新和改善!) 所以这里提供的方法: unsigned int类型getbits(无符号整数X,INT P,INT N){ 则返回(x>>(P + 1
..
你有过使用位移在实际编程项目?大部分(如果不是全部)高级语言有移位运算符在其中,但是当你实际上需要使用它们? 解决方案 我还是写code为没有在硬件浮点支持系统。在这些系统中你需要一点移几乎所有的运算。 你也需要转移到生成散列。多项式算法(CRC,里德 - 所罗门codeS是主流应用程序)或使用变化为好。 然而,只用变化,因为它们是得心应手,前preSS笔者预期的到底是什么。你可以模拟
..
任何人都可以解释为什么以下不编译? 字节B = 255<< 1 错误: 恒值'510'不能被转换为“字节” 我期待在二元以下内容: 1111 1110 该类型转换难倒我了。 解决方案 在C#数字文本是 INT ,而不是字节(和位移位将被由编译器进行评价的,因此只有510遗体)。因此,您尝试将值赋给字节不适合。你可以用255面膜:字节B =(255<<
..
我会心存感激的一个很好的教程,在java中如何对Java新手解释所有的“位转移”工作。 我总是通过它绊倒,但永远无法理解它是如何工作。这里需要说明一下所有可能在Java byteshifting / bitmanipulation的操作和概念。 这是我的意思,(但我要寻找解释每一个可能的操作教程)只是一个例子: 字节B =(字节)(L>>(8 - I< 3;));
..
我对负数右移操作很迷茫,这里是code。 INT N = -15; 的System.out.println(Integer.toBinaryString(正)); INT面膜= N>> 31; 的System.out.println(Integer.toBinaryString(掩模)); 和结果是: 11111111111111111111111111110001 11111
..
..