问题标签 [bit]

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 投票
4 回答
459 浏览

c++ - 文件格式中的整数类型

我目前正在尝试更深入地了解文件格式。

我有一个 3D 文件格式(在这种情况下为 U3D)的规范,我想尝试实现它。没什么大不了的,只是为了学习效果。

我的问题很早就从需要定义的类型开始。我必须定义不同的整数(8 位、16 位、32 位无符号和有符号),然后需要将它们转换为十六进制,然后再将其写入文件。

我如何定义这些类型,因为我不能只创建一个 I16 即?我的另一个问题是如何将 I16 转换为 8 位的十六进制数(即 0001 0001)。

0 投票
3 回答
11342 浏览

java - 在Java中将一个字节转换为长度为4的布尔数组

我需要在 Java 中将一个字节转换为一个由 4 个布尔值组成的数组。我该怎么办?

0 投票
1 回答
2305 浏览

perl - Perl 打包/解包/移位

我在 Perl 中遇到这个问题已经好几天了,在搜索了无数的手册页、perldocs 和谷歌搜索太多的搜索词之后,希望这里有人可以帮助我。

我得到了两个代表十六进制值的字符串,即“FFFF”,而不是 Perl 十六进制数 0xFFFF。给定其中两个字符串,我希望将它们转换为二进制形式,对两者进行按位与,然后获取其输出并检查从 LSB 到 MSB 的每一位。

我现在有两个问题;将十六进制字符串转换为十六进制数,并将按位与的结果移位。

为了将十六进制字符串转换为十六进制数字,我尝试了以下方法,当我打印出来检查时这些方法似乎不起作用:

使用“打印”来检查其中的每一个都不会显示正确的值,使用“sprintf”也不会......

第二个问题发生在我执行按位与之后,我想通过右移 1 来检查每个位。为了避免前面的问题,我使用了实际的 Perl 十六进制数字而不是十六进制字符串(0xffff 而不是“ffff”) . 如果我尝试按如下方式执行右移:

此时一切看起来都很好,使用“打印”我可以看到 AND 操作的值看起来是正确的,但是当我尝试按如下方式转换时:

我得到的结果值是二进制形式但不正确。

执行这种操作的正确方法是什么?

0 投票
3 回答
1643 浏览

c++ - 使用 bitset 代替手写的位操作代码?

在手写的地方使用 bitset 是否有任何性能损失/增益?

如何在运行时使用 bitset 构建以下内容

  • 将 2 到 5 之间的所有位设为零,即11110011.
0 投票
5 回答
22686 浏览

c# - c#中布尔值的二进制表示是什么

我知道一个布尔值是 1 个字节(8 位长)但我想知道它的二进制表示是什么。例如十进制 => 二进制 4 => 100 (0000 0100) 8 => 1000 (0000 1000) 布尔值 => ???

0 投票
4 回答
5403 浏览

sql - 选择具有默认值的可空位

我需要在视图中选择一个可为空的位列,但只要值为 NULL,就使用默认值 FALSE。(由于其他原因,我无法在源表本身上添加默认值。)这就是我正在做的事情。

我必须在四列上执行此操作,所以我想知道是否有更好/更有效的方法来执行此操作。

0 投票
2 回答
733 浏览

c++ - 如何将位存储到一个巨大的字符数组以进行文件输入/输出

我想将大量信息逐位存储到一个块中,并将其保存到一个文件中。

为了让我的文件不那么大,我想使用少量位来保存指定的信息而不是 int。

例如,我想将 Day、Hour、Minute 存储到文件中。

我只想要 5 位(天)+ 5 位(小时)+ 6 位(分钟)= 16 位内存用于数据存储。

我找不到一种有效的方法将它存储在一个块中以放入文件中。

我担心有一些大问题:

  1. 我每次要存储的数据长度不是恒定的。这取决于传入的信息。所以我不能使用结构来存储它。

  2. 我的块中不能有任何未使用的位,我搜索了一些主题,其中提到如果我将 30 位存储在一个 int(4 字节变量)中,那么我保存的下一个 3 位将自动进入下一个 int。但我不希望它发生!

  3. 我知道我可以使用右移,左移将数字放入字符,并将字符放入块中,但效率低下。

我想要一个 char 数组,我可以继续将指定的位放入其中,并使用 write 将其放入文件中。

0 投票
4 回答
2047 浏览

java - Java中的位总和

对不起朋友我做错了。我又犯了这个错误。真的很抱歉。

这就是问题。

我有一个时间范围

我想要时间总和,例如

直到23:00

所以我需要 totalRange = 256+128+64+32+16+8+4 ;

应该又是这样对不起。

谢谢

0 投票
2 回答
1397 浏览

mysql - BIT(1) vs ENUM('unknown', 'male', 'female') in MySQL

In performance terms, what will be faster, use a BIT(1) NULL (null = unknown, 0 = male, 1 = female) or ENUM('unknown', 'male', 'female') NOT NULL DEFAULT 'unknown' in MySQL MyISAM?

Or this is considered micro-optimization?

[EDIT]

I think I'm going to use ENUM('male', 'female') DEFAULT NULL

0 投票
1 回答
2277 浏览

mysql - MySQL: Example of where to use the BIT Data Type

If I understand correctly, the pre MySQL 5.0.3 interpretation of the BIT data type meant it could be used as a series of flags? If this is the case I can see practical uses for it in MySQL but imagine it would not have been as efficient as using SET.

Even if the above is not the case, I have great difficulty in understanding how the current implementation of the BIT data type can be practically applied in a database. If anyone is able to provide a simplified explanation and, an example of where it would be applicable, I would be grateful.

I have searched for descriptions and examples elsewhere but have been unsuccessful in finding examples applicable solely to databases.