-
0 votesanswersviews
二进制数中最长的连续1的长度
我需要实现一个带有逻辑门的数字逻辑电路,例如AND,OR,NOT,ADDER(等等......),它获得一个8位二进制数,并返回输入中最长连续1的数 . 例如: 11110011 - 将返回4 10101111 - 也将返回4 01111111 - 将返回7 我真的很感激一些帮助,因为我几天都在苦苦寻找解决这个问题的方法 . 谢谢! -
377 votesanswersviews
什么是“2的补充”?
我正处于一个计算机系统课程中,并且一直在与Two's Complement进行斗争 . 我想了解它,但是我为了我而把这张照片带到了一起 . 我已经阅读了wikipedia article和其他各种文章,包括my text book . 因此,我想开始这个 community wiki 帖子来定义Two's Complement是什么,如何使用它以及它如何在诸如强制转换(从有符号到无符号,反之亦然)... -
0 votesanswersviews
位操作替换IF语句并提高性能
我可以替换以下IF语句: if(condition){ x += y; } 有: x = x + ((y - x) * (condition)); 删除分支 . 有没有办法避免上面的乘法,并用一个按位操作替换它,使其更快? -
1 votesanswersviews
ColdFusion BitAnd函数用于biginteger或64位有符号整数
我正在使用ColdFusion bitAnd 功能 . 此函数在32位有符号整数上运行,范围为-2147483648到2147483647.我需要对64位有符号整数使用数学运算,因此我的范围超出限制 . 有没有其他方法可以做到这一点或除了 bitAand() 之外还有其他任何自定义数学函数? 谢谢您的帮助 . -
1 votesanswersviews
非整数2个整数的包装
我有一组整数,每个整数都有一个特定的范围: foo = [1, 5] bar = [1, 10] baz = [1, 200] 我可以根据它们可以拥有的不同状态的数量来计算分别存储每个数字需要多少位: foo = 5 possible states ~ 3 bits bar = 10 possible states ~ 4 bits baz = 200 possible states ~ ... -
16 votesanswersviews
我=(i&-i)做什么?它是便携式的吗?
设 i 是有符号整数类型 . 考虑 i += (i&-i); i -= (i&-i); 最初 i>0 . 这些怎么办?是否只有使用算术的等效代码? 这取决于负整数的特定位表示吗? 来源:setter的在线编码拼图代码(没有任何解释/评论) . -
0 votesanswersviews
用C从二进制文件中逐位读取
我需要为每一步读取256位,直到二进制文件结束 . 在c中是否有任何操作逐位读取?我使用fread函数并读取32个字符 . 对于所有字符,我一点一点地移位8次 . 读完后将这256位写入文件 . 写?有同样的事吗?我的意思是做ı写32个字符=> 32 * 8 = 256位 . -
7 votesanswersviews
使用10 MB内存为40亿个整数(关于找到优化的块大小)[重复]
这个问题在这里已有答案: Find an integer not among four billion given ones 38个答案 问题是,给定一个包含40亿个整数的输入文件,提供一个算法来生成一个未包含在文件中的整数,假设只有10 MB的内存 . 搜索了一些解决方案,其中之一是将整数存储到位向量块(每个块表示40亿范围内的特定整数范围,块中的每个位表示整数),并为每个块使用另一个计数器... -
0 votesanswersviews
IPv6前缀/前缀长度按位操作
我正在尝试编写C#代码,它将确定以斜杠/符号给出的ipv6地址的ipv6前缀(IPv4中的“子网”) . 与路由器一样,这需要对ipv6地址进行按位操作,其前缀长度为(ipv4中的“子网掩码”) . 例如:给定2000:1234 :: 1234/64 代码将做: (2000:1234 :: 1234)AND(FFFF:FFFF:FFFF:FFFF)并确定该地址的前缀是2000:1234:0000:... -
4 votesanswersviews
当左移两个补码中的负数时,保证负面结果?
假设负binary number表示在two's complement, how can we guarantee the sign is preserved? 假设我们用四位表示十进制数 -5 : 1011 ,并且想要左移一个位置乘以2: 1011 << 1 此操作返回0110,即6, not -10 as we would have hoped . (我假设这只是第二位为0的负... -
1 votesanswersviews
为什么128位一和二的补码使用8位溢出?
假设我想用8位代表128和2的补码,没有符号位 Wouldn't that be: 一个补充: 0111 1111 二补: 0111 1110 没有溢出 But the correct answer is: 一个补充: 0111 1111 二补: 0111 1111 溢出 Additional Question: 为什么一个_2552189的补充分别是 0000 0001 和 0000 0001 ... -
0 votesanswersviews
两个补语功能的麻烦
试图实现一个函数来返回一串位的二进制补码 . 我尝试了两个品种并得到奇怪的结果 . 版本1(进行反转但不是“1”):string twosComp(signed int number){ string twosComp(signed int number) { if ( number == 0 ) { return "1"; } if ( number =... -
1 votesanswersviews
我可以使用按位运算符来请求Loopback模型吗?
Strongloop Loopback文档没有说明使用按位过滤器进行对象检索 . Example like in Loopback API documentation: // Just an example of syntax, it does not do bitwise filter Inventory.find({where: {status: {gt: 4}}); 通过与MongoDB的... -
0 votesanswersviews
为什么使用2的幂作为散列大小会使哈希表比使用素数更糟糕?
我正在实现一个应该存储32位值对的哈希表 . 考虑到我的元素是固定大小,我使用一个非常简单的散列函数: hash(a,b) = asUint64(a) + (asUint64(b) << 32) 有了它,我得到一个哈希表中的元素索引(即它对应的桶): index(a,b) = hash(a,b) % hash_size 其中hash_size是我表上的条目/桶数 . 我已经意识到,... -
786 votesanswersviews
如何计算32位整数中的设置位数?
代表数字7的8位看起来像这样: 00000111 设置三位 . 什么算法来确定32位整数中的设置位数? -
21 votesanswersviews
为什么按位运算比旧微处理器上的加/减操作稍快?
我今天看到了这段摘录: 在大多数较旧的微处理器上,按位运算比加法和减法运算稍快,并且通常比乘法和除法运算快得多 . 在现代体系结构中,情况并非如此:按位运算通常与添加速度相同(尽管仍然比乘法更快) . 我很好奇为什么按位操作比旧微处理器上的加/减操作稍快一些 . 我能想到的只会导致延迟的是,实现加/减的电路取决于几级逻辑门(并行加法器和诸如此类的东西),而按位运算则具有更简单的电路实现 . 这... -
1238 votesanswersviews
什么是按位移位(位移)运算符以及它们如何工作?
我一直在尝试在业余时间学习C语言,其他语言(C#,Java等)具有相同的概念(通常是相同的运算符)...... 我想知道的是,在核心层面,什么是位移( << , >> , >>> ),它有什么问题可以帮助解决,以及潜伏在弯道附近的是什么?换句话说,一个绝对的初学者指导比特移位的所有优点 . -
49 votesanswersviews
Python的两个补充
python中是否有内置函数将二进制字符串(例如'111111111111')转换为two's complement integer -1? -
0 votesanswersviews
为什么按位运算符在比较布尔值时比在Java中的“普通”运算符慢?
假设如下:你有两个函数,它们都做了基本相同的事情,即将两个随机布尔值与AND和OR运算符进行比较 . 但是一个函数用普通的条件运算符&&和||来做,另一个用位运算符&和| . 我认为这两个功能当然需要相同的时间来完成,他们不会这样做 . 具有按位比较的那个比使用"normal"条件运算符的时间多五分之一 . 我很困惑并做了一些研究,并在Oracle的Java文档... -
0 votesanswersviews
C - 更改bmp文件的像素颜色
我是C的新手,我一直在努力理解如何访问和修改bmp文件的某些像素的RGB值 . 我的图像的 Headers 在字节54处结束,因此从那里所有字节应保存有关像素的信息 . 一个像素由3个字节定义,分别保持蓝色,绿色,红色(因为我的机器是小端) . 我想将这个像素设为黑色,这意味着这3个字节的所有8位都需要为0 . 所以我的问题是: 如何访问bmp文件的一个字节的位并将它们全部设置为零? 谢谢 . -
292 votesanswersviews
使用单个乘法提取位
我在answer到another question中看到了一种有趣的技术,并希望能够更好地理解它 . 我们给出了一个无符号的64位整数,我们对以下几位感兴趣: 1.......2.......3.......4.......5.......6.......7.......8....... 具体来说,我们希望将它们移到前八位,如下所示: 12345678......................... -
3 votesanswersviews
在CIDR范围MySQL中找到IPv6的正确方法
我有一个MySQL黑名单表,其中存储了两种类型之一的单个IPv4,IPv6或CIDR范围 . 我的表看起来有点像这样: +-----------+-------------+ | Name | Type | +-----------+-------------+ | IpAddress | VARCHAR(46) | +-----------+-----------... -
0 votesanswersviews
仅使用按位运算除以两个整数[重复]
可能重复:使用位智能运算符实现除法 我最近通过按位函数深入研究,并开始使用按位运算符实现基本算术函数 . 到目前为止,我已经得到了 (+, -, *) . 但是我不确定如何接近分裂 . 我知道我可以以某种方式使用乘法,但不知道如何使用该方法来解决这个问题 . 那么我如何仅使用按位运算符来实现除法: (|, &, ~, ^, >>, <<) 在C中?对于任何要求... -
2 votesanswersviews
对于浮点数,Tensorflow逐位NOT运算
我有一个Tensorflow布尔向量,我需要逐位反转,使得0(False)的所有值变为1(True),反之亦然 . tf.logical_not存在,但它只接受布尔向量 . 是否存在Tensorflow在int或float的向量上执行此操作,因此我不需要重构我的张量?