将 8 位转换为一个字节以在 Java 中进行幅度调制
Converting 8 bits to a byte for amplitude modulation in Java
所以我正在 Java 中编写一个程序来进行振幅解调。我正在按值读取正弦波值并确定我的值是“1”还是“0”。现在我将它们保存为字符,但愿意接受建议。我知道每位的样本数,所以确定位不是问题。
我想不出将每组 8 位转换为一个字节的方法,因此我可以使用 UTF-8 解码最终的字节数组。有什么有效的方法吗?
试试这个,来自 Byte Java API
String myBitString = "10101010";
int radixTwo = 2;
byte myByteValue = Byte.parseByte(myBitString, radixTwo)
显然,您可以将字节值添加到 byte[]
数组,然后使用循环来显示/解码它们。
转换方法可能有用...
public static byte toByte(boolean[] bits){
assert bits.length == 8;
int tmp = 0;
for (int i = 0; i < 8; i ++){
if(bits[0] ){
tmp = tmp + (2^i);
}
}
return (byte)(tmp)
}
所以我正在 Java 中编写一个程序来进行振幅解调。我正在按值读取正弦波值并确定我的值是“1”还是“0”。现在我将它们保存为字符,但愿意接受建议。我知道每位的样本数,所以确定位不是问题。
我想不出将每组 8 位转换为一个字节的方法,因此我可以使用 UTF-8 解码最终的字节数组。有什么有效的方法吗?
试试这个,来自 Byte Java API
String myBitString = "10101010";
int radixTwo = 2;
byte myByteValue = Byte.parseByte(myBitString, radixTwo)
显然,您可以将字节值添加到 byte[]
数组,然后使用循环来显示/解码它们。
转换方法可能有用...
public static byte toByte(boolean[] bits){
assert bits.length == 8;
int tmp = 0;
for (int i = 0; i < 8; i ++){
if(bits[0] ){
tmp = tmp + (2^i);
}
}
return (byte)(tmp)
}