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]赋值的时候就会出错。