在java中读取32位二进制数
我正在尝试读取五个32位二进制数并将其打印为int。以下是我的代码:在java中读取32位二进制数,java,Java,我正在尝试读取五个32位二进制数并将其打印为int。以下是我的代码: FileInputStream fin = new FileInputStream(file); int count = 5; for (int i = 0; i < count; i++) { byte[] input = file.getBytes(); String bin=Integer.toBinaryString(0xFF &a
FileInputStream fin = new FileInputStream(file);
int count = 5;
for (int i = 0; i < count; i++) {
byte[] input = file.getBytes();
String bin=Integer.toBinaryString(0xFF & input[i] | 0x100).substring(1);
System.out.println(bin);
我做错了什么?谢谢您实际上不是在读取文件,而是在打印文件名前五个字符的二进制表示形式。使用fin.read()从文件中读取字节 您也可以使用DataInputStream直接读取32位大端整数,而不是将它们作为4个单独的字节读取。如果您需要读取5个大端32位整数,那么我建议您使用
DataInputStream
,例如
final int count = 5;
try (DataInputStream dis = new DataInputStream(new FileInputStream(file))) {
for (int i = 0; i < count; i++) {
int value = dis.readInt();
System.out.println(Integer.toBinaryString(value));
}
}
final int count=5;
try(DataInputStream dis=newdatainputstream(newfileinputstream(file))){
for(int i=0;i
阅读toBinaryString
@MikeSamuel Big-endianI的javadoc将其更改为fin.Read()。我得了105分。我没有从文件中获取内容?read方法读取单个字节,每个字节有8位。要读取一个32位单元,您必须读取4个字节。+1用于“仅使用”如果这是一个好的解决方案,请将此答案标记为已接受(单击计票下方左侧的复选标记)。我没有看到左侧的复选标记。。。计票?
final int count = 5;
try (DataInputStream dis = new DataInputStream(new FileInputStream(file))) {
for (int i = 0; i < count; i++) {
int value = dis.readInt();
System.out.println(Integer.toBinaryString(value));
}
}