1 java
我想检索文件中数据的二进制值.所以我写了以下代码:
while ((fileData = br.readLine()) != null) {
byte b[] = fileData.getBytes("UTF-8");
BigInteger bi = new BigInteger(b);
String s = bi.toString(2);
System.out.println("Original message in binary: " + s);
System.out.println("Original message length: " + s.length());
}
Run Code Online (Sandbox Code Playgroud)
输出:
abca (this is the data in a text file)
Original message in binary: <here>1100001011000100110001101100001
Original message length: 31
Run Code Online (Sandbox Code Playgroud)
一切都很好,但我打印二进制格式的数据,我无法打印第一位(<here>)任何人都可以帮助我吗?
对于第一个字符:
s.charAt(0);
Run Code Online (Sandbox Code Playgroud)
编辑: 如果要打印第一个字节的二进制表示,请尝试这样:
String str = Integer.toBinaryString("abca".getBytes("UTF-8")[0]);
System.out.println(str);
Run Code Online (Sandbox Code Playgroud)
编辑2: 尝试使用前导零.
static String addLeadingZeroes(String s) {
int zeroes = s.length() % 8;
byte[] bzero = new byte[8 - zeroes];
Arrays.fill(bzero, (byte)0x30);
return new StringBuilder(new String(bzero)).append(s).toString();
}
Run Code Online (Sandbox Code Playgroud)
并打电话给
System.out.println("Original message in binary: "+ addLeadingZeroes(s));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5239 次 |
| 最近记录: |