相关疑难解决方法(0)

如何在Java中使用sha256散列一些字符串?

如何在Java中使用sha256散列一些字符串?有人知道这个免费图书馆吗?

java cryptography sha256 cryptographic-hash-function

187
推荐指数
11
解决办法
30万
查看次数

按位并代替模数运算符

我们知道,例如两个幂的模数可以这样表达:

  x % 2 inpower n == x & (2 inpower n - 1).
Run Code Online (Sandbox Code Playgroud)

例子:

x % 2 == x & 1
x % 4 == x & 3
x % 8 == x & 7 
Run Code Online (Sandbox Code Playgroud)

两个数字的一​​般非权力怎么样?

让我们说:

x%7 ==?

algorithm

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

如何在Java中内部表示整数?

我试图了解Java如何在内部存储整数.我知道所有java原始整数都是有符号的(除了短?).这意味着该字节的字节中可用的位数较少.

我的问题是,所有整数(正数和负数)都存储为二进制补码或只是二进制补码中的负数吗?

我看到规格说明了x bit two's complement number.但我经常感到困惑.

例如:

  int x = 15; // Stored as binary as is?  00000000 00000000 00000000 00001111?
  int y = -22; // Stored as two complemented value? 11111111 11111111 11111111 11101010
Run Code Online (Sandbox Code Playgroud)

编辑

要清楚, x = 15

   In binary as is: `00000000 00000000 00000000 00001111'
  Two's complement: `11111111 11111111 11111111 11110001`
Run Code Online (Sandbox Code Playgroud)

因此,如果您的答案是 all数字存储为两个补码,那么:

  int x = 15; // 11111111 11111111 11111111 11110001
  int y = -22 // 11111111 11111111 11111111 11101010
Run Code Online (Sandbox Code Playgroud)

这里的混淆再次是标志说,两者都是负数.可能是我误读/误解了吗?

编辑 …

java memory binary store twos-complement

80
推荐指数
4
解决办法
7万
查看次数

将两个字节读入整数?

我有一个byte[]我从文件中读取的内容,我希望从中获取int两个字节.这是一个例子:

byte[] bytes = new byte[] {(byte)0x00, (byte)0x2F, (byte)0x01, (byte)0x10, (byte)0x6F};
int value = bytes.getInt(2,4); //This method doesn't exist
Run Code Online (Sandbox Code Playgroud)

这应该value等于0x0110272十进制.但显然,byte[].getInt()不存在.我怎样才能完成这项任务?

上面的数组只是一个例子.实际值对我来说不了解.

java byte integer bytearray

26
推荐指数
3
解决办法
4万
查看次数

如何使用Java Sound中的音频样本数据?

这个问题通常被问到是另一个问题的一部分,但事实证明答案很长.我决定在这里回答它,所以我可以在其他地方链接到它.

虽然我不知道Java此时可以为我们生成音频样本的方式,但如果将来发生变化,这可能是一个适合它的地方.我知道JavaFX有一些这样的东西,例如AudioSpectrumListener,但仍然不能直接访问样本.


我正在javax.sound.sampled用于播放和/或录制,但我想对音频做些什么.

也许我想直观地展示它或以某种方式处理它.

如何使用Java Sound访问音频样本数据?

也可以看看:

java audio javasound audio-processing javax.sound.sampled

18
推荐指数
1
解决办法
9775
查看次数

如何检测WAV文件是否具有44或46字节的标头?

我发现在样本开始之前假设所有PCM wav音频文件都有44个字节的标题数据是危险的.虽然这很常见,但许多应用程序(例如ffmpeg)将生成带有46字节标头的wav,并忽略此事实,而处理将导致文件损坏且不可读.但是,如何判断标题实际存在多长时间?

显然有一种方法可以做到这一点,但我搜索并发现很少有关于此的讨论.根据作者自己的背景,很多音频项目假设44(或相反,46).

audio wav

16
推荐指数
2
解决办法
2万
查看次数

如何将 JSONArray 中的字节复制到 Byte 数组

我以缓冲区(字节)的形式获取图像数据,但我想将其转换为 base64 字符串。数据是在 JSONArray 中接收的,就像这样

JSONArray : `[53,57,51,47,53,57,51,55,50,98,98,54,53,51,54,97,102,101,53,101,102,54,57,54,53,54,53,51,102,98,53,99,98,98,99,51,98,48,52,57,56,52,52,101,54,48,50,99,56,55,101,54,53,97,51,102,56,49,56,57,56,98,102,56,49,57,97,57]`
Run Code Online (Sandbox Code Playgroud)

为此,我将 JSONArray 复制到 中"byte" array,如下所示:

JSONArray bytearray_json = record.getJSONObject("image").getJSONArray("data");
byte[] bytes = new byte[bytearray_json.length()];
for (int i =0; i < bytearray_json.length(); i++ ) {
    bytes[i] = (byte)bytearray_json.get(i);
}
String base_64 = Base64.encodeToString(bytes,Base64.DEFAULT);
Run Code Online (Sandbox Code Playgroud)

但我得到一个例外:Cannot cast Integer to byte 我不能这样做,bytearray_json.get(i).toString().getBytes();因为它返回一个Byte Array.

我该如何解决这个问题?

java arrays android

2
推荐指数
1
解决办法
2618
查看次数

如何在java中将11111111表示为一个字节

当我说0b11111111是java中的一个字节时,它说"无法将int转换为byte",这是因为据我所知,11111111 = 256,java中的字节是有符号的,从-128到127.但是,如果一个字节只是8位数据,那么不是11111111 8位?我知道11111111可能是一个整数,但在我的情况下,它必须表示为一个字节,因为它必须以字节形式发送到一个文件.那么如何将一个带有位11111111的字节发送到一个文件(顺便说一句,这是我的问题)?当我尝试打印二进制值-1时,我得到11111111111111111111111111111111,为什么?我真的不明白签名字节是如何工作的.

unsigned signed byte bytearray

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