java - 删除字节的最后一位

标签 java bit-manipulation bitwise-operators

例如,我有一个字节数组(字节数组可以多于或少于 3 个字节)

byte[] array = {0b00000011, 0b00111011, 0b01010101}

如何删除最后一位字节: 0b00000011、0b00111011、0b01010101 因为我想得到这样的结果 11|0111011|1010101 但我不知道该怎么做

最佳答案

这不是很清楚,但也许我理解:你想删除一个字节前面的所有非有效位。你可以使用一个字符串来实现;伪代码:

take a byte value N (or word or whatever)
prepare an empty string ST
while N<>0
  if (N & 1)
    then ST = "1"+ST
    else ST = "0"+ST
  N = N >> 1
end

现在字符串 ST 包含您想要的内容(如果是您想要的...)。

关于java - 删除字节的最后一位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41378132/

相关文章:

java - 一起使用&和〜运算符

java - 在多个 ImageView 上旋转动画

java - ScrollView 不工作 - 相对布局

java - 无法解析符号 R

c++ - 右移开头为零

c - 解释按位运算符和掩码的直观方法是什么?另外, mask 是做什么用的?

c - 生成位模式

c# - 为什么在 C# 中进行按位运算时必须强制转换为 0(零)?

java - 为什么 SOPLN 中的输出转换为浮点型?

c - 非 sse2 架构上 128 位值的按位运算