问题标签 [bits]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
3089 浏览

perl - 你能解释一下我从 unpack 中得到的信息吗?

我对 Perl 相对缺乏经验,但我的问题涉及在获取数值位时的解包函数。例如:

这将导致打印 10001100,即十进制的 140。在相反的顺序中,它是十进制的 49。我尝试过的任何其他值似乎都给出了不正确的位。

但是,当我通过 pack 运行 $bits 时,它再次产生 1。我在这里缺少什么吗?

当我认为我的问题已经解决时,我似乎得出了结论。也许我应该简要解释一下我正在尝试做什么。

我需要将一个可能长达 24 位(关键是它可能大于一个字节)的整数值转换为位串。这可以使用@ikegami 建议的解包和打包来完成,但我还需要找到一种方法将该位字符串转换回它的原始整数(不是它的字符串表示形式)。

正如我所提到的,我对 Perl 相对缺乏经验,而且我一直在尝试但没有成功。


我发现似乎是最佳解决方案:

0 投票
1 回答
1942 浏览

debugging - 无法调试 pic32 微控制器或更新配置位

我有一个 PIC32MX460L512 微控制器(Digilent 的 Cerebot MX4 板),在做了一些项目之后,我不能再对其进行编程了。

这发生在我测试板乘法器和除法器以查看板如何使用#pragma pll ....

我无法编写新的十六进制或更改配置位,并且出现以下错误

  1. PIC32 入门工具包硬件初始化失败。错误= -1004,详细信息=0x80004005,(LID:29) 或第二个错误
  2. 设备重置失败/确保配置位正确。

我认为该板仍然可以工作,因为 Windows 可以在设备和打印机中看到它。

我该怎么办?我可以从一些位重置内存吗?我仍然是微控制器的菜鸟。

提前致谢

0 投票
8 回答
22487 浏览

standards - 1 兆比特 = ? 字节

我总是对此感到困惑。是否有将兆位转换为字节的“标准”转换?

是吗:

或者:

0 投票
1 回答
941 浏览

matlab - 在 matlab 中读取文件并在 verilog 中访问它

我正在尝试在 matlab 中读取文本文件并将其转换为位。然后我想访问它们并将它们存储在我的模块中的一个寄存器中。然后我在模块内使用这些位。我可以这样做吗?如果是,如何?谢谢你。

0 投票
1 回答
301 浏览

c++ - 将哈希表合并到一个数组中

我想将 2 个或更多哈希表合并在一起。最终形式是什么并不重要,只要我可以遍历它。这里的最终形式是一个数组。

所以我有一个 unsigned long 作为键,值是一个字符串,整数对。每个键映射到一个 bin,每个 bin 都可以有冲突。我没有将整个哈希表复制到数组中,而是逐个复制它,这样我就不需要遍历整个数组。首先,我将第一个哈希表的第一个 bin 复制到一个 Pairs 数组中,其中字符串和 int 作为其字段(键被忽略)'

就像是

要将它添加到数组中,我会有这样的东西......

然后将第二个哈希表的第一个bin合并到数组中,我首先检查哈希表的值的字符串是否已经在数组中,如果是我只是更新与字符串对应的类对的int部分在数组中,如果不是,我将其添加到数组中。

然后我继续到下一个 bin..将第一个哈希表的第二个 bin 复制到数组中..然后不是遍历整个数组来检查数组中第二个哈希表的第二个 bin 中的内容,而是开始搜索来自将第二个 bin 的第一个元素插入数组的数组索引。

问题甚至是迭代这种方式仍然很长,因为每个 bin 可以包含 1000 多个 collisons,并且有数千个 bin 要通过。我想避免这种情况。我在想,因为每个键(很长)对于每个字符串都是唯一的,如果它在数组中,则将该键号的偏移量设置为 1,如果不是,则设置为 0。这样,如果它在数组中,我只需要遍历数组。长长的问题太大了。我无法分配具有那么多位的数组...

还有其他方法吗?

0 投票
2 回答
336 浏览

java - 位如何在 C++ 中存储,如何在 Java 中表示类似的功能

我在 C++ 中有:

这里 OR 操作正在进行,之后将存储该值。所以在内存中是不是像 (0th)11000000(1st)100000(2nd)1000100 因为它们在数组中?[4]中实际可以存储多少位(总共0+1+2+3+4)。

在 Java 中:

如果需要更新或修改位,我们可以使用 bitset 类提供的 set 或 get 方法。在java中,如果我们需要进行OR运算,我们需要在后缀中添加0以获得相同的结果。我们可以在 C++ 中避免哪些?谢谢

0 投票
3 回答
531 浏览

java - C++ 到 Java 代码转换的疑惑

我正在将一些代码从 c++ 转换为 Java。有以下疑惑——

  1. C++ - 静态字符 **gprs; 在 Java 中 - 私有静态字符串 [] gprs;或私有静态字节[] gprs;

  2. C++ - 静态字符 *掩码;在 Java 中 - 私有静态字节掩码;(正确的?)

  3. C++ - memset((char *)&rm,'\0',sizeof(DRMK)); // 这里 DRMK 是一个结构体。rm 是 DRMK 的对象。所以在java中我必须创建一个类,并且在声明变量时我必须将单个值设置为0。这是正确的吗?

  4. C++ - memcpy (&wp, (PMSK *)p_msk + (long)(x - 1), sizeof(PMSK)); 如何在 Java 中反映这一点。PMSK 在这里是一个结构。
    在哪里 - 静态 PMSK wp;PMSK *下午;静态字符 *p_msk;

谢谢

0 投票
3 回答
94 浏览

c - 基于位选择的算法效率

我想知道您在开发基于位的 if/else 切换/案例的有效算法时的想法是什么。我有 8 位可以使用,我需要将它们分为高阶位和低阶位,如下所示:

0000 1111

每一半都包含一些关于哪些位被打开的信息。例如,如果下半部分(1111在这个小端机器中)实际上是0010,就会发生一些事情。此外,如果高端是1000,则会发生其他事情。

我想右移上半部分并进行AND比较会很有效(例如(x >> 4) & 8),但我不确定下半部分应该做什么,因为左移并与一些奇怪的数字进行比较似乎有点不明智。

再次,非常感谢您的见解。

0 投票
4 回答
38014 浏览

c++ - 将整数转换为位

我有字节到二进制字符串函数,

如何以相同的方式将 int 写入位?我不想在二进制字符串的开头有额外的 0,所以这就是为什么我无法弄清楚如何每次都创建一个可变长度。另外,我没有使用 std::bitset。

0 投票
3 回答
437 浏览

byte - 如何将位转换为字节?

如果我有一个表示为 1 和 0 的 x 位值,分别代表真和假。我如何将这些转换为 8 位字节?我不想知道如何将位数转换为字节数(x/8)。我想知道如何转换这样的东西:

10000010 为一个字节

或者

100000101000001 为浮点数