问题标签 [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 投票
2 回答
3990 浏览

python - python将字符串编码的12位图像转换为8位png

我有一个从 USB 远地点相机读取的字符串,它是一个 12 位灰度图像,每个 12 位占用 16 位字的最低 12 位。我想通过忽略最低 4 位从这个字符串创建一个 8 位 png。

我可以使用 PIL 将其转换为 16 位图像,其中最高 4 位始终为零

无论如何,我可以做类似的事情来创建一个 8 位图像,而无需完全解开字符串进行算术运算并创建一个新字符串吗?

编辑:关于转换图像的 Wumps 评论给了我一个想法,我做到了

谢谢乌普

0 投票
2 回答
3316 浏览

c++ - 将位插入字节

我正在看一个从字节中读取位的示例,实现看起来简单易懂。我想知道是否有人有类似的如何将位插入字节或字节数组的示例,这更容易理解并且也像下面的示例一样实现。

这是我发现的从字节中读取位的示例:

这就是我想要做的。这是我目前的实现,我只是对位屏蔽/移位等有点困惑,所以我试图找出是否有更简单的方法来做我正在做的事情

0 投票
2 回答
1210 浏览

c++ - 从二进制输入流中设置 C++ 位集

我有一个来自二进制文件的输入流。我想为流的前 5 位创建一个位集。这是我到目前为止的代码:

0 投票
5 回答
10177 浏览

javascript - 表示数字的位数

我正在尝试编写一个函数来返回小于 (2^53)-1 的 Javascript 限制的正整数的位数。但是我遇到了精度问题,并且希望避免使用大整数库。

方法一:

方法二:

我认为这两种方法都无法解决精确问题。

谁能建议一种适用于 0 -> 2^53-1 之间数字的替代方法

谢谢。

0 投票
5 回答
324 浏览

operating-system - 关于 32 位 / 64 位系统的问题

首先,这叫什么?这是系统的“平台”吗?如果我想知道一个系统是 32 位还是 64 位,我会问它是什么“平台”吗?

接下来,是我在下面写的正确的:

- 64 位处理器可以运行 64 位操作系统或 32 位操作系统(有效率损失)。

- 32 位处理器只能运行 32 位操作系统。

0 投票
1 回答
994 浏览

scala - Scala 中的压缩

我正在使用非常大的Int列表(可能很大)在 Scala 上工作,我需要压缩它们并将其保存在内存中。

唯一的要求是我可以提取(并解压缩)列表中的第一个数字以使用,而无需触及列表的其余部分。

我有很多好主意,但其中大多数将数字转换为位。例子:

您可以将任意数字x写为元组 |log(x)|,x-|log(x)| 第一个元素,我们将它作为一个字符串 1 和一个 0 在末尾(一元代码)和二进制中的第二个元素。例如:

1 -> 0,1 -> 0 1

...

5 -> 2,1 -> 110 01

...

8 -> 3,0 -> 1110 000

9 -> 3,1 -> 1110 001

...

虽然 Int 占用固定的 32 位内存和长 64 位,但通过这种压缩,x需要2log(x)位进行存储,并且可以无限增长。在大多数情况下,这种压缩确实会减少内存。

您将如何处理此类数据?是否有诸如位数组之类的东西?

在 Scala 中压缩此类数据的任何其他方式?

谢谢

0 投票
4 回答
1292 浏览

c++ - C++ 原始数据类型:如何读取无符号 30 位

我有一个数组unsigned chars。基本上我有一个位数组。

我知道前 16 位对应于一个无符号整数,我使用它检索它的值(u16)(*(buffer+ 1) << 8 | *abcBuffer)

然后是一个名为的数据类型u30,描述如下: u30 - variable length encoded 30-bit unsigned integer value. u30 的变量编码使用一到五个字节,具体取决于编码值的大小。每个字节将其低七位贡献给该值。如果设置了一个字节的高(第 8)位,则下一个字节也是该值的一部分。

我不明白这个描述:它说u30(三十!)然后它说 1 到 5 个字节?我还有另一种数据类型称为s24 - three-byte signed integer value.

应该如何读取(检索它们的值)这种非典型数据类型?任何帮助将不胜感激。

非常感谢!

0 投票
7 回答
42907 浏览

java - 如何在 Java 中反转无符号字节的位?

我正在尝试为一种非常简单的加密类型编写解码器。通过扫描仪输入 0-255 之间的数字,位被反转,然后转换为字符并打印。

例如,数字 178 应转换为字母“M”。

178 是 10110010。

反转所有位应给出 01001101,即 77 或“M”作为字符。

我遇到的主要问题是,据我所知,Java 不支持无符号字节。我可以将值读取为 int 或 short,但是由于额外的位,这些值将在转换过程中关闭。理想情况下,我可以只使用按位补码运算符,但我认为如果我使用有符号数字这样做,我最终会得到负值。关于我应该如何处理这个问题的任何想法?

0 投票
6 回答
34846 浏览

c - 有没有办法通过联合访问单个位?

我正在编写一个 C 程序。我想要一个可以作为 char 访问的变量,但我也可以访问其中的特定位。我在想我可以使用这样的工会......

但编译器不喜欢这样。显然你不能在结构中使用位。那么我能做些什么呢?

0 投票
3 回答
2128 浏览

.net - 在 VB.NET 中存储一个字节的 4 位

在 VB.NET 中从一个字节存储 4 位的最佳方法是什么?最好的意思是:

  • 从 Byte 类型存储最直接的方法。
  • 在执行按位运算时最容易使用。
  • 将位直接转换为其他类型。

通过其构造函数将它们存储在 BitArray 中会反转位的顺序。这意味着尝试获取第一位的值将需要在 BitArray 的最后一个条目中查找该值。将它们存储在布尔数组中不会提供从字节转换的直接方法,并且会阻碍转换为其他类型。