- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下“增量”方法运行良好。但我想知道是否有更快的方法以更少的步骤完成此操作。
public BitArray Increment(BitArray bArray)
{
carry = true;
for (i = 0; i < 32; i++)
{
if (carry)
{
if (bArray[i] == false)
{
bArray[i] = true;
carry = false;
}
else
{
bArray[i] = false;
carry = true;
}
}
}
return bArray;
}
谢谢....
最佳答案
您可以做出一项非常明显的改进:完成后停止!
public void Increment(BitArray bArray)
{
for (int i = 0; i < 32; i++)
{
bool previous = bArray[i];
bArray[i] = !previous;
if (!previous)
{
// Found a clear bit - now that we've set it, we're done
return;
}
}
}
或者,如果您真的只有 32 位(并且永远只有 32 位),为什么不直接使用 int
呢?增加 that 真的很容易!如果需要,您始终可以将其包装在自己的自定义结构中。
关于c# - 将 BitArray(二进制数)递增 1 的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9540673/
我有一个包含以下内容的 BitArray: byte[] myBytes = {0, 0, 2, 176, 168, 3, 19, 0}; BitArray myBitArr = new BitArr
我需要将一个 BitArray(来自 std.bitmanip)分成两半。直到现在我发现切片没有实现,迭代它并附加或分配总是会产生超出范围的异常。我试图将它转换为其他类型(它适合 long/ulong
我该怎么做?我正在尝试计算两个数组何时在同一索引处具有相同的 TRUE/1 值。如您所见,我的代码有多个位数组,并且循环遍历每个位数组,并将它们与带有另一个循环的 comparisonArray 进行
我正在创建一个软件包,它一次接受 16 个 bool 值,将它们放入一个位数组中,然后将它们发送到 PLC 以供 PLC 解包和使用。我的问题有两个: 1) 如果我制作一个 BitArray(16),
我有不同大小的 BitArray,我想在十六进制字符串中进行转换。 我试图将 BitArray 转换为 byte[],但它没有给我正确的格式。 ( Converting a boolean array
如何确保从 BitArray 更改位时,BitArray 值保持在一个范围内。 示例: Given the range [-5.12, 5.12] and a = 010000000000000001
我正在寻找有关并发写入 System.Collections.BitArray 类的线程安全性的信息。 具体来说,请考虑以下人为设计的示例: BitArray bits = new BitArray(
我目前正在尝试使用 BitSet 在 C 中实现埃拉托色尼筛法,但是当我尝试筛选高达 1,000,000(100 万)- 100,000(100,000)的素数时,我遇到了段错误虽然我不明白为什么会出
我试过这样的: BitArray bits = new BitArray(00001110); 但结果是1110 似乎 BitArray 删除了前导零。 是否可以创建一个带前导零的 BitArray?
我正在从医疗设备中提取字节流,遇到了一个非常烦人的数据结构。基本上,我得到一个 2 字节的 block ,其中每个位代表一个 bool 值。这种结构在字节流中出现的频率足以围绕它开发结构/类,但在每种
我正在尝试从整数值初始化一个 System.BitArray 实例。但是,我似乎没有得到正确的值。 我的代码是 var b = new BitArray(BitConverter.Ge
这段代码: BitArray bits = new BitArray(new byte[] { 7 }); foreach (bool bit in bits) { Console.Write
我有一个 System.Collections.BitArray 数组(~3000 项),我想将所有位向左移动 1。但是该集合似乎不支持该操作(即 bitArray << 1 不工作,没有方法)。知道
我有一个长度相当大 (500,000) 的 c# BitArray,我正在尝试获取数组中所有正位集的索引。目前我正在通过以下方式实现这一目标: public int[] GetIndexesForPo
请考虑将斜杠符号(例如 24、30)转换为子网掩码的这个(非家庭作业)练习。 当我复制 BitArray至 byte[] , BitArray 的内部排序导致输出不正确。 例如,输入 numberOf
我遇到了 BitArray 的问题。 目标是模拟 8 个 80bit BitArrays 的堆栈,编号从 0 到 7。 我只需要能够通过索引访问它们,所以我认为一个简单的数组对我来说就足够了。 当初始
我正在尝试解决一个更大的问题。作为其中的一部分,我创建了一个 BitArray 来表示一系列按顺序做出的二元决策。我知道所有有效的决策系列都会有一半的决策是正确的,一半是错误的,但我不知道顺序: t
我已经阅读了关于 BitArray 转换的其他帖子,并亲自尝试了几个,但似乎没有一个能提供我想要的结果。 我的情况是这样的,我有一些控制 LED 灯条的 c# 代码。要向 strip 发出单个命令,我
我创建了以下将按要求执行的函数(将 HEX 字符串转换为 BitArray)。我不确定函数的效率,但我现在的主要问题是 Convert.ToInt64 函数是 endian 特定的。当这被移植到备用芯
背景 我这里有一个控制台应用程序,其中发生了以下事情...... 用户/运算符(operator)将一串位输入控制台,即“0101”。 - 作品 比特串被转换成一个字节。 - 作品 使用我的反转方法反
我是一名优秀的程序员,十分优秀!