java如何将byte类型数组变成int类型的数组?

我读取pcm格式音频,读取到的是一个byte[]格式的音频数据,如何把它变成int类型的数组数据,然后我处理完之后又要重新变成byte类型,这如何操作???

每4个byte转化成一个int,使用位运算,大致如下

大端序:

int[i] = byte[4*i] << 24 | byte[4*i+1] << 16 | byte[4*i+2] << 8 | byte[4*i+3];

小端序:

int[i] = byte[4*i] | byte[4*i+1] << 8 | byte[4*i+2] << 16 | byte[4*i+3] << 24;
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-09-09
intBytes[0] = (byte) (x >> 24);
intBytes[1] = (byte) (x >> 16);
intBytes[2] = (byte) (x >> 8);
intBytes[3] = (byte) (x >> 0);

b3对应intBytes[0]:
public static int makeInt(byte b3, byte b2, byte b1, byte b0)
{
return (int) ((((b3 & 0xff) << 24) | ((b2 & 0xff) << 16)
| ((b1 & 0xff) << 8) | ((b0 & 0xff) << 0)));
}

#ASP 中用到的数据的型态主要,日期,数字,文字,其他用到的不多...
第2个回答  2019-11-21
每4个byte转化成一个int,使用位运算,大致如下
大端序:
int[i] = byte[4*i] << 24 | byte[4*i+1] << 16 | byte[4*i+2] << 8 | byte[4*i+3];小端序:
int[i] = byte[4*i] | byte[4*i+1] << 8 | byte[4*i+2] << 16 | byte[4*i+3] << 24;

java如何将byte类型数组变成int类型的数组?
int[i] = byte[4*i] << 24 | byte[4*i+1] << 16 | byte[4*i+2] << 8 | byte[4*i+3];小端序:int[i] = byte[4*i] | byte[4*i+1] << 8 | byte[4*i+2] << 16 | byte[4*i+3] << 24;

java 如何将byte[4]数组转换成一个int型数据?
java中将4字节的byte数组转成一个int值的工具方法如下: \\x0d\\x0a\/** \\x0d\\x0a* @param byte[]\\x0d\\x0a* @return int\\x0d\\x0a*\/ \\x0d\\x0apublic static int byteArrayToInt(byte[] b){ \\x0d\\x0a byte[] a = new byte[4]; \\x0d\\x0a int i = a....

java如何将byte[4]数组转换成一个int型数据?
byte[] bs = new byte[4];\\x0d\\x0abs[0] = 1;\\x0d\\x0abs[1] = 2;\\x0d\\x0abs[2] = 3;\\x0d\\x0abs[3] = 4;\\x0d\\x0a\\x0d\\x0aint r = 0;\\x0d\\x0aPipedOutputStream pos = new PipedOutputStream();\\x0d\\x0aPipedInputStream pis = new PipedInputStream();...

java 如何将byte[4]数组转换成一个int型数据
a[i] = 0;\/\/如果b.length不足4,则将高位补0 } int v0 = (a[0] & 0xff) << 24;\/\/&0xff将byte值无差异转成int,避免Java自动类型提升后,会保留高位的符号位 int v1 = (a[1] & 0xff) << 16;int v2 = (a[2] & 0xff) << 8;int v3 = (a[3] & 0xff) ;return v...

java如何把byte数组里的十六进制转换成int类型,如下图的数据,杂么转换...
示例 package com.sdvdxl.other;public class Test {public static void main(String[] args) {byte[] bytes = new byte[] {0x00,0x53};for (byte b : bytes) {System.out.println(Integer.valueOf(b));}}}结果:0 83 PS : 使用的时候会自动转换成10进制的 ...

java 中byte[2]的数组怎么转成有符号的整数?
一个int型有4个字节,所以byte[2]是不可能转成int型的,只能转成char型或short型 由于Java不支持指针,只能用位运算操作 byte b[] = new byte[2];b[0] = 0x12;b[1] = 0x34;short s=0; \/\/必须先清零否则会导致数据错误\/\/Java语言本身是大端序,数组首元要放在高位s|=b[0]<<8; \/...

如何把一个byte数组的数字转换成int
这里简单记录下两种转换方式:第一种:1、int与byte[]之间的转换(类似的byte short,long型)[java] view plain copy \/** * 将int数值转换为占四个字节的byte数组,本方法适用于(低位在前,高位在后)的顺序。 和bytesToInt()配套使用 * @param value * 要转换的int值 * @re...

byte10等于多少int
java中byte转换为 int有两种情况,一种是要求保持值不变,例如进行数值计算,可采用强制类型转换:int i = (int) aByte。表示的数字范围为:-128到+127所以第一个byte中元素都没超过范围,都以数字显示。第二个byte数组中的元素都是char类型,char类型是占16位的,一般转换为byte是由大到小,需要...

怎么将byte转换为String?
在Java编程中,将byte类型的字节数组转化为字符串(String)是一个常见的操作,但关键在于选择正确的字符编码。由于字节可以映射到多种编码,如UTF-8、UTF-16或ISO-8859-1等,转换时必须明确指定编码。一个典型的例子是使用UTF-8,如下所示:首先,创建一个字节数组byteArray,它包含字符串 "Hello" 的...

怎么把byte字节的数组转为int类型的
一般会自动转换。如:byte a[];int b[]=a[];也可以强制转换:int b[]=(int)a[];

相似回答