问题标签 [bitarray]
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.
c# - 使用 bitarray 抓取位并建立新值
如果我取一个 uint 值 = 2921803 (0x2C954B),它实际上是一个 4 字节包 (4B 95 2C 00),并且我想使用 bitarray 获取它的字节版本的 16 个最低有效位,我将如何去做?
这就是我尝试这样做的方式:
在这一点上,我都转过身来。我确实试过这个:
这给了我所有的信息,但完全相反,从 [31] 读取到 [0]。最终,我期待/希望得到 19349 (4B 95) 作为我的答案。
这就是我希望实现该功能的方式:
c++ - How to store a bit-array in C++?
What's the best way to store a bit array in C++ (no Boost, just standard containers), representing, for example, a volume allocation bitmap?
I thought std::vector<bool>
was a great idea, but apparently it's Evil and deprecated, so is there a better choice?
Also:
If I have a byte array in memory, how would I go about copying them to the recommended container?
(I'm having trouble figuring this out for vector<bool>
.)
python - 使用 Python 位串测量霍夫曼编码的效率
我有以下字符串,我想对其进行霍夫曼编码并有效地存储到一个位数组中:
中符号的频率为sequence
:
我将其翻译成霍夫曼代码字典:
然后,我使用 Pythonbitstring
包将字符串逐个字符地转换为BitArray
类的实例,我称之为bitArray
,其中包含用其各自的霍夫曼代码编码的每个字符的位:
这是以字节为单位的位数组:
我必须使用tobytes()
而不是bytes
,因为我生成的位数组不会均匀地分成 8 位段。
当我计算BitArray
表示的存储效率(位数组和输入字符串的大小之比)时,我得到的性能比不编码输入字符串时更差:
我是否正确测量存储效率?(如果我对更长的输入字符串进行编码,这个比率会提高,但它似乎接近 0.28 左右的渐近极限。我想确认这是否是衡量事物的正确方法。)
编辑
以下两种方法产生不同的答案:
我不确定该相信哪个。但是在将数据写入存储的过程中,我认为我需要字节表示,这使我倾向于选择第一个结果。
c# - BitArray 上的操作
可能重复:
如何将 BitArray 转换为单个 int?
如何将整数读取为 a BitArray(6)
(假设可以包含)以及如何将 a 转换BitArray(6)
为无符号/有符号整数。
mongodb - 在 MongoDB 中自动递增以存储唯一用户 ID 的序列
我正在制作一个分析系统,API 调用会提供一个唯一的用户 ID,但它不是按顺序排列的而且太稀疏了。
我需要为每个唯一用户 ID 提供一个自动增量 ID,以在 bitarray/bitset 中标记分析数据点。因此,第一个用户遇到的将对应于 bitarray 的第一位,第二个用户将是 bitarray 中的第二位,依此类推。
那么有没有一种可靠而快速的方法来在 MongoDB 中生成增量唯一用户 ID?
python - 如何提高这个计数程序的性能?
给定一个文件如下所示:
第一个字段是一个 ID,即in range(0, 200000000)
. 第二个字段表示一个类型,即in range(1, 5)
. 并且类型1和类型2属于一个共同的范畴S1
,而类型3和类型4属于S2
。一个 ID 可能有多个不同类型的记录。该文件大小约为 200MB。
问题是计算具有类型 1 或 2 记录的 ID 数量,以及具有类型 3 或 4 记录的 ID 数量。
我的代码:
虽然它给出了答案,但我认为它运行得有点慢。我应该怎么做才能让它运行得更快?
编辑:
文件中有重复的记录。而我只需要区分S1(类型1和类型2)和S2(类型3和类型4)。例如,1440927 1
and1440927 2
只计算一次,而不是两次,因为它们属于 S1。所以我必须存储ID。
vb.net - 读取 MP3 帧头 - 将位值分配给变量
我正在学习visual basic .net,我正在尝试将一些java源代码转换为vb.net项目。项目读取mp3详细信息,然后根据frameheader详细信息等准确分割文件。
我的问题与阅读 mp3 文件的帧头有关。我了解帧详细信息包含在帧的前 4 个(32 位)字节中,某些位表示某些值,如下所述:http: //www.mp3-tech.org/programmer/frame_header.html
使用 FileStream 我已经能够读取这些数据并在文本框中以二进制形式显示它。
我正在寻求帮助来阅读这些位并将它们分配给我班级中的变量。我不确定执行此操作的正确程序是什么,因为某些值的长度为 1、2 或 4 位,例如位 19-20 = MpegType,位 12-15 = BitrateIndex,位 9 = 填充等。
我查看了 codeproject.com 上提供的类似项目,但我不明白他们是如何实现上述目标的。
任何帮助深表感谢。
编辑:
到目前为止,这是主要的子部分,我还没有包含声明变量和属性等的代码。
运行时,富文本框中的输出如下:
我想通读这些位并将适当的值分配给变量,例如
读取同步值的前 12 位。读取 mpegID 值的第 13 位。读取第 14 位和第 15 位以获取 layerID 值等。
希望这更清楚。
java代码如下:
c# - BitArray 以错误的方式返回位?
这段代码:
给我以下输出:
不应该反过来吗?像这样:
我知道有小端和大端,尽管这些术语仅指字节的位置。据我所知,它们不会影响位。
c - C位数组宏,谁能解释一下这些是如何工作的?
我正在尝试为学校项目实施 Erathostenes 筛,我决定使用位数组来实现。当我在搜索材料时,我遇到了这 3 个宏,它们完美地工作,但我无法真正阅读(理解)它们。
请您至少向我详细解释其中一个,我对 C 中的按位运算有非常基本的了解(基本上我知道它们“存在”)。
这是否适用于使用不同字节序的另一种架构?提前致谢。
c# - 在c#中将二进制数据转换为字节
我们有一个包含二进制值的文本文件。比如说,我们有一个文件“file.txt”,它包含二进制数据,比如11001010 ,这个文件的大小是8 个字节。但是我们希望将这8 个字节作为位读取,即8 位,从而将 8 位转换为 1 个字节。我们该怎么做?我们只知道过程: 1.取一个缓冲区并将单个值读入缓冲区 2.如果缓冲区值达到8,则将这8位转换为一个字节并写入文件。
提前致谢。