- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有这两个数字:
x = 0xB7
y = 0xD9
x = 1011 0111
y = 1101 1001
x = 1011 1001
y = 1101 0111
最佳答案
我只会使用按位运算符:
t = (x & 0x0f)
x = (x & 0xf0) | (y & 0x0f)
y = (y & 0xf0) | t
那将适用于该特定情况。为了使其更具适应性,我将它放在一个函数中,类似于 (伪代码,用
&
、
|
和
!
表示按位“与”、“或”和“非”分别):
def swapBits (x, y, s, e):
lookup = [255,127,63,31,15,7,3,1]
mask = lookup[s] & !lookup[e]
t = x & mask
x = (x & !mask) | (y & mask)
y = (y & !mask) | t
return (x,y)
查找值允许您指定要交换的位。让我们取值
xxxxxxxx
为
x
和
yyyyyyyy
对于 y 以及起始位
s
2 和结束位
e
6 个(在这种情况下,位数从左边的零开始):
x y s e t mask !mask execute
-------- -------- - - -------- -------- -------- -------
xxxxxxxx yyyyyyyy 2 6 starting point
00111111 mask = lookup[2](00111111)
00111100 & !lookup[6](11111100)
00xxxx00 t = x & mask
xx0000xx x = x & !mask(11000011)
xxyyyyxx | y & mask(00111100)
yy0000yy y = y & !mask(11000011)
yyxxxxyy | t(00xxxx00)
关于bit-manipulation - 在两个字节之间的给定点交换位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3562347/
我一直在研究这段代码,但我找不到问题所在。该程序确实可以编译并运行,但最终出现 fatal error 。 程序读取文件并收集数字以计算总数(将它们转换为 float 后)。然后它读取文件并显示小于
我是计算机科学的新手,最近上了一节课。我正在努力解决这个问题,尽管我知道按位运算,但我还是不太明白 问题图片: 我可以有一个明确的解释吗? 最佳答案 答案:B 解释: 使用德摩根定律 (https:/
我发现了这个问题, 编写一个不使用乘法返回给定整数 n 的平方的函数。 对此的解决方法是 public static int sq(int n){ int i = n;
我在某处听说使用 XOR 是不可逆的(他们谈到了加密),但我不明白这是什么意思? AFAIK 即使使用 OR 操作,您也无法找出两个位中的哪一个是 1。请知道这意味着什么的人可以向我解释一下吗? 谢谢
由于一些原始研究和需要为其开发工具,我想出了一些新的,我希望能更好/更快地执行某些数学运算。 Atm 我正在研究伪代码,将它们发布在网站上,以回答已经提出的问题。 然而,在我这样做之前,我想尽可能地优
我经常遇到使用位运算符来做快速、简单和优雅的事情的人。我想学习一些有用的技巧。有哪些最有用的按位运算符案例? 最佳答案 恒定时间 2-幂运算: x = 1 << n; // x = pow(2, n)
我们需要为我的计算机体系结构类编写一个模拟IEEE浮点数除法的程序。我几乎已经做到了,但是我认为查看程序在APL中的样子会很有趣,但是据我所知,没有(简单的)方法可以在APL中进行按位运算(按位和/或
我正在寻找具有以下特征的按位运算序列以下属性: | 00 01 10 11 ---|--------------- 00 | 00 01 | 01 01 10 | 00 01 00
我有一系列位标志,其顺序类似于 {none=0x00, puppies=0x01, kittens=0x02, cute=0x04, funny=0x08, scary=0x10} 等等。 每当用户进
我正在尝试有效地执行以下任务: INPUT VALUE: 01101011 MASK: 00110010 MASK RESULT: --10--1- AGGREGATED: 00000
我需要一种快速的方法来计算位向量的索引间隔的设置位数。例如,给定 10000100100011000 和索引区间 [2, 5],返回值为 2。索引从右边的 0 开始。我有很多疑问要以这种方式完成。分别
我有以下表达式来计算奇偶校验位: AB0E 异或 73C9 异或 D46A 异或 06E3 这将如何评估?是吗: (((AB0E XOR 73C9) XOR D46A) XOR 06E3) 或者是:
我需要对 7 位值进行任意重新排序(是的,我知道我应该使用表格)并且想知道是否有任何技巧可以做到这一点。 例子: // -> // the naive way out = (0x020 &
假设我有这两个数字: x = 0xB7 y = 0xD9 它们的二进制表示是: x = 1011 0111 y = 1101 1001 现在我想在给定点交叉(GA),比如从位置 4 开始。 预期的结果
我想知道是否有办法使用按位运算符屏蔽 int 值列表,并使用该掩码来知道 int 值是否是掩码中的值之一。 即如果我有值 129 和 17,如何计算一个掩码,告诉我一个 int 值是否在掩码中对应(如
我需要使用卡片外的字节码验证器来验证Java Card程序(盖帽文件)。 我已经手动修改了cap文件中的信息,并且我想验证新的cap文件是否类型正确。 我尝试使用com.sun.javacard.sc
我正在尝试找到实现此目标的正确方法的方法: 想象一下,我们有一组位集,如下所示: 00100 00101 10000 00010 10001 我想测试一下,哪些位在所有位集中仅设置了一次。在该示例中,
我不完全理解这种计算奇偶校验位的算法。 有人可以详细解释一下吗? 以下代码摘自《黑客的喜悦》一书: int parity(unsigned x) { unsigned y; y = x ^
我有一个任意 8 位二进制 数字,例如,11101101 我必须交换所有的位,如: 交换前:11-10-11-01交换后:11-01-11-10 我在面试中被问到这个问题! 最佳答案 在伪代码中: x
在我的国际象棋引擎中,它使用位板来表示棋盘的状态,一次生成一大块伪合法移动,结果是位板。例如: 棋子: 稍后一点位板魔法: 最后的位板只是一大块可能的 Action 。引擎通常如何获取此位板并从中生成
我是一名优秀的程序员,十分优秀!