【问题标题】:Creating a new int/char knowing the bits知道位创建一个新的 int/char
【发布时间】:2013-07-21 04:36:13
【问题描述】:

我正在尝试创建一个新字符/整数。我所知道的关于 char/int 的只是前 6 位。我有一个名为

的变量
number

这是一个相当大的数字,它是由 24 位组成的。有了这个数字,我想使用 toBinaryString 方法

bits = Integer.toBinaryString(number);

所以现在我有一个变量 bits 包含来自我的变量号的位。此时我想把这个字符串分成 4 个,所以我剩下 4、6 个字符串,它们将代表我的整数/字符的位。知道这些位,我将如何创建一个数字或一个字符?

为了确保我能详细解释,让我举个例子:

我有

number = "abc" // 011000010110001001100011 as binary representation

现在我想用前 6 位 (011000) 创建一个新整数。后面6位的另一个整数(010110)等等……

【问题讨论】:

    标签: java byte bit


    【解决方案1】:

    为什么要将它作为一个字符串?听起来你真的只是想要位移操作:

    number = ...;
    
    int bottomBits = number & 0x3f;
    int middleBits = (number >>> 6) & 0x3f;
    int upperBits = (number >>> 12) & 0x3f;
    

    所以bottomBits最低有效位 6 位,然后是middleBits,然后是upperBits(最高有效位,因此是二进制字符串中的前 6 位)。

    【讨论】:

    • +1 循环和long 值可能是合适的。 long 将为您提供 10 x 6 位值。
    • 我猜这是个愚蠢的问题。惊人的答案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 2010-09-22
    相关资源
    最近更新 更多