标签: bits

为什么计算位数有用?

我已经看到了关于计算insert type of输入中设置位数的众多问题,但为什么它有用呢?

对于那些寻找有关位计数的算法的人,请看这里:

  1. 计算无符号长整数序列中的公共位
  2. 计算unsigned int中位转换次数的最快方法
  3. 如何计算32位整数中的设置位数?

language-agnostic computer-science bits bit-manipulation bitcount

6
推荐指数
1
解决办法
501
查看次数

加倍和除以浮点值

我有一个函数,我相信将int转换为浮点值,拆分为值的符号指数和分数组成部分.使用IEEE 754表示浮点值.

在此输入图像描述

unsigned test(unsigned x) {    
    // split the given bits of sign exponent and fraction, combine to return

    unsigned int sign = (x & 0x80000000) >> 31;
    unsigned int expo = (x & 0x7F800000) >> 23;
    unsigned int frac = (x & 0x007fffff);

    return (sign << 31) | (expo << 23) | frac;
}
Run Code Online (Sandbox Code Playgroud)

但我不确定如何从这个浮点表示计算减半或加倍的值.

unsigned doubled(unsigned x) {
    // get float
    // float = unsigned int to float
    // doubleFloat  = 2*f
    // if float is not a …
Run Code Online (Sandbox Code Playgroud)

c c++ floating-point bits

6
推荐指数
1
解决办法
255
查看次数

位移位的实际应用

我完全理解如何移位。我已经在纸上和代码中完成了许多示例,并且不需要任何帮助。

我正在尝试提出一些有关如何使用位移的真实示例。以下是我能想到的一些例子:

  • 也许我能概念化的最重要的例子与字节序有关。在大端系统中,最低有效位从左侧存储,而在小端系统中,最低有效位从右侧存储。我想对于使用相反字节序策略的系统之间的文件和网络传输,必须进行某些转换。

  • 在处理任何 n^2、n^4 等乘法时,编译器和处理器似乎可以进行某些优化。这些位只是向左移动。(相反,我想同样适用于除法、n/2、n/4 等)

  • 在加密算法中。即使用一系列位移、反转和组合来混淆某些东西。

所有这些都是准确的例子吗?你有什么要补充的吗?我花了很多时间学习如何实现位移/重新排序/字节交换,我想知道如何实际应用它 = )

c bits bit-shift

5
推荐指数
1
解决办法
1768
查看次数

位字节字和双字 - 何时在汇编中使用什么?

我正在尝试学习汇编(更像是在挣扎),并且遇到了字节、字、双字等数据类型。

真正让我困惑的是你什么时候知道使用一个而不是另一个。显然您想使用最保守的选项,但我怎么知道选择一个字节而不是一个字呢?例如 1 个字 = 16 位或 2 个字节。这是否意味着我可以在 1 个单词中放入 16 个字符?所以为了保存字母表,我需要声明 2 个单词?

寄存器(16 位、32 位和 64 位)也是如此。我知道您可以使用较小的寄存器,例如al和 ,ah而不是eax在操作较小尺寸的数据时。对于 16 位寄存器,您能否将比字大的数据类型移入其中,因为它是 16 位,因此可以容纳 16 位字?

围绕这整个概念我很困难。如果有人碰巧有我可以查看的任何好的资源或信息,那就太好了。干杯!

assembly byte bits cpu-registers

5
推荐指数
1
解决办法
1万
查看次数

如何将字符串转换为位然后转换为int数组 - java

如何在Java中将字符串转换为位(不是字节)或位数组(我稍后会做一些操作)以及如何转换为整数数组(每32位转换成int然后将它放入数组中?我有从未在Java中进行过这种转换.

String->array of bits->(some operations I'll handle them)->array of ints
Run Code Online (Sandbox Code Playgroud)

java string int bits bit

5
推荐指数
1
解决办法
1万
查看次数

如何检查vector <bool>是否实际上是位向量而不是字节的向量?

我需要存储一个动态的位数组.
vector <bool>上的C++参考页面包含以下信息:

存储不一定是bool值的数组,但库实现可以优化存储,以便每个值存储在单个位中.

我如何确保我使用的程序vector<bool>确实存储了向量中的位而不是布尔值(字节)?

c++ bits stl boolean vector

5
推荐指数
2
解决办法
867
查看次数

在Delphi中操作字节变量的位

我使用delphi逐字节地从.txt文件中提取数据.对于每个字节,我需要交换该字节的开始和结束位.我一直在谷歌搜索几个小时但我找不到有关在delphi中操作字节变量内的位的任何参考.有任何想法吗?

delphi byte bits

5
推荐指数
1
解决办法
943
查看次数

使用0xFFFF屏蔽16位值

我正在关注Gameboy模拟的指南,在一段代码中我看到了以下内容:

while(true) 
{ 
  var op = MMU.rb(Z80._r.pc++); // Fetch instruction 
  Z80._map[op]();               // Dispatch 
  Z80._r.pc &= 65535;           // Mask PC to 16 bits 
  Z80._clock.m += Z80._r.m;     // Add time to CPU clock 
  Z80._clock.t += Z80._r.t; 
}
Run Code Online (Sandbox Code Playgroud)

如果pc是一个16位程序计数器寄存器并且65535是十六进制的0xFFFF,那么屏蔽16位值的目的是什么0xFFFF?据我所知,这什么都没做?或者它与符号位有关吗?

javascript bits 16-bit masking

5
推荐指数
1
解决办法
1734
查看次数

如何有效地将BitSet转换为二进制字符串?

我正在寻找一种有效的方法来如何轻松地将其转换BitSet为二进制字符串.让我们说它的通常长度将是数千位.

例如,让我们:

BitSet bits = new BitSet(8);
bits.set(1);
bits.set(3);
Run Code Online (Sandbox Code Playgroud)

这是理想的结果:

String result = toBinaryString(bits);
// expected: result = "01010000"
Run Code Online (Sandbox Code Playgroud)

我总体上有一些想法(溪流等),但可能有一些明显的标准方法,我只是缺少.

java string binary bits bitset

5
推荐指数
1
解决办法
4330
查看次数

将变量存储为单个位

在过去的几周里,我一直致力于制定一个能够使主要螺旋尽可能高效的程序.我研究了多线程以提高程序的速度,现在我遇到了一个新问题.我的素数列表的长度为6400万和零,这个列表占用240MB的内存.因为我使用多处理(总共5个进程),我的脚本最多使用总共1.1GB的ram,如果达到这一点,则返回内存错误.

关于我如何存储素数的一些背景信息:质数存储在列表中,每次我找到素数时,我将值设置为1(例如:Primes [13] = 1(因为它是素数)和Primes [14] = 0).对我来说这似乎是最好的解决方案,因为列表不会占用大量内存

经过一些基本的数学计算后,我得出结论,我的素数列表中的每个零或一个占用4个字节(32位)的信息.这似乎是合乎逻辑的,但我想知道是否有办法将零和1存储为单个位,因此它不会占用太多内存.

提前感谢任何答案,问候,伤害

python memory integer bits

5
推荐指数
1
解决办法
1296
查看次数