javabyte輸出
『壹』 java中數值以二進制輸出BYTE類型的數值為什麼是四個位元組呢
String s=Integer.toBinaryString(b) ; //因這個是按整數來進行處理的,所以會是按四位元組輸出,需要處理一下
System.out.println( s.substring(s.length()-8) );
『貳』 java byte數組 怎麼列印
java byte 數組,可以使用Array類提供的方法遍歷輸出列印,示例如下:
publicclassceshi{
publicstaticvoidmain(String[]args){
byte[]b=newbyte[12]('0x97','0x98');//byte數組
System.out.println(Arrays.toString(b));//位元組數組列印
}
}
輸出結果為:a,b
『叄』 java怎麼把一個byte變數按二進制輸出
/**
* 將byte轉換為一個長度為8的byte數組,數組每個值代表bit
*/
public static byte[] getBooleanArray(byte b) {
byte[] array = new byte[8];
for (int i = 7; i >= 0; i--) {
array[i] = (byte)(b & 1);
b = (byte) (b >> 1);
}
return array;
}
/**
* 把byte轉為字元串的bit
*/
public static String byteToBit(byte b) {
return ""
+ (byte) ((b >> 7) & 0x1) + (byte) ((b >> 6) & 0x1)
+ (byte) ((b >> 5) & 0x1) + (byte) ((b >> 4) & 0x1)
+ (byte) ((b >> 3) & 0x1) + (byte) ((b >> 2) & 0x1)
+ (byte) ((b >> 1) & 0x1) + (byte) ((b >> 0) & 0x1);
}
使用:
byte b = 0x35; // 0011 0101
// 輸出 [0, 0, 1, 1, 0, 1, 0, 1]
System.out.println(Arrays.toString(getBooleanArray(b)));
// 輸出 00110101
System.out.println(byteToBit(b));
// JDK自帶的方法,會忽略前面的 0
System.out.println(Integer.toBinaryString(0x35));
『肆』 java如何使用位元組輸出流抽象類OutputStream類
OutputStream定義了輸出流的各種方法,如下表:
返回
方法
說明
void write(byte[ ] b) 將byte[ ] 數組中的數據寫入當前輸出流
void write(byte[] b ,int off, int len) 將byte[ ]數組下標off開始的len長度的數據寫入當前輸出流
Abstract void write(int b) 寫入一個byte數據到當前輸出流
void flush() 刷新當前輸出流,並強制寫入所有緩沖的位元組數據
void close() 關閉當前輸出流
『伍』 java關於byte[]內容輸出的問題
System.out.println(Arrays.toString(bytes));就可以了
『陸』 用java語言寫 定義一個byte類型變數,並且賦值,輸出該數是奇數或者偶數。用if條件語句
import java.util.Scanner;
public class Student {
public static void main(String[] args) {
Scanner sr=new Scanner(System.in);
System.out.println("請輸入一個數");
byte b=sr.nextByte();
if(b%2==0){
System.out.println("偶數");
}else{
System.out.println("奇數");
}
}
}
『柒』 Java 位元組byte數組這樣輸入和輸出有什麼問題
for (byte t=0; t<256; t++)
改為
for (int t=0; t<256; t++)
這是位數的問題。byte只有128位,所以最多隻能代表128個數字,即:0-127,
所以byte t = 128;的時候你如果輸出t會發現t的值為-128,而數組中下標是不存在負數的,所以你要給b[-128]賦值的時候就會出錯。