gpt4 book ai didi

Java计算字节数组位数的方法

转载 作者:行者123 更新时间:2023-11-29 07:11:58 26 4
gpt4 key购买 nike

我无法在此处或一般网络上找到与 Java 相关的有用答案。问题看似简单——我需要一种方法来计算任意大小的字节数组中包含的位数。字节数组可以包含十六进制、十进制或二进制值。

我敢肯定,这是让我在看到答案时踢自己的那些问题之一,但事实证明它非常令人沮丧。该方法应该类似于:

public int bitsInByteArray(byte[] b) {
return - sum of bit count (ie the sum total bits, not the sum of their values)
of each byte in b
}

任何方向或建议将不胜感激。

编辑 - 抱歉,伙计们,我根本没有说对。我正在做一个加密分配,并被要求“使用带有 key k 的 AES 加密包含 64 个零位的单个 block ”现在,我创造了 byte[] zeroBlockAes = {0x0,0x0...0x0} 直到它包含 64 个零元素。问题是,这肯定是512位吧?那么我应该只输入八个零值吗?

当我这样做时,我的加密输出是 -75 111 69 107 -18 88 51 89 68 -123 -49 18 -26 -109 94 21

当我再次解密时,我得到了原来的八个零。这在 AES 中是正常的还是我可能做错了什么,我认为 block 密码为加密和解密产生相同大小的输入/输出。

最佳答案

鉴于 1 字节 等于 8 位,这是 Java 在 Byte.SIZE 中定义的,我们可以这样写:

 public int bitsInByteArray(final byte[] b) {
return b.length * Byte.SIZE;
}

关于Java计算字节数组位数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13093800/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com