Java基础知识-容量单位及进制转换

单位

字 word
字节 byte
位 bit
十六进制 hex
八进制 octal
二进制 binary

换算

1 word = 2 byte
1 byte = 8bit
1 hex = 4bit
1binary = 1bit

8种基本数据类型

类型存储需求bit数取值范围
byte1字节1*8[-2^31,2^31-1]
short2字节2*8[-32768,32767]
int4字节4*8[-2^31,2^31-1]
long8字节8*8[-2^63,2^63-1]
float4字节4*8[-2^128,2^127] eg:3.14F
double8字节8*8[-2^1024,2^1023] eg:3.14
char2字节2*8
boolean1字节1*8false、true

进制转换

十六进制转成十进制

Integer.valueOf("FFFF",16).toString();

十六进制转成八进制

Integer.toOctalString(Integer.valueOf("FFFF",16));

十六进制转成二进制

Integer.toBinaryString(Integer.valueOf("FFFF",16));

十进制转成十六进制

Integer.toHexString(10);

十进制转成八进制

Integer.toOctalString(10);

十进制转成二进制

Integer.toBinaryString(10);

八进制转成十六进制

Integer.toHexString(Integer.valueOf("567",8));

八进制转成十进制

Integer.valueOf("567",8).toString();

八进制转成二进制

Integer.toBinaryString(Integer.valueOf("567",8));

二进制转十六进制

Integer.toHexString(Integer.parseInt("0101", 2));

二进制转十进制

Integer.valueOf("0101",2).toString();

二进制转八进制

Integer.toOctalString(Integer.parseInt("0101", 2));

byte[ ]与String

1. byte[ ]转String

String str = new String(byteArray);

2. byte[ ]转HexString

public static String byteArrayToHexStr(byte[] byteArray) {
    char[] hexArray = "0123456789ABCDEF".toCharArray();
    char[] hexChars = new char[byteArray.length * 2];
    for (int j = 0; j < byteArray.length; j++) {
        int v = byteArray[j] & 0xFF;
        hexChars[j * 2] = hexArray[v >>> 4];
        hexChars[j * 2 + 1] = hexArray[v & 0x0F];
    }
    return new String(hexChars);
}

public static String byteArrayToHexStr(byte[] byteArray) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < byteArray.length; i++) {
        int v = src[i] & 0xFF;
        String hv = Integer.toHexString(v);
        if (hv.length() < 2) {
            sb.append(0);
        }
        sb.append(hv);
    }
    return sb.toString();
}

3. String转byte[ ]

byte[] byteArray = str.getBytes(Charset charset);

Charset : UTF-8 \ ISO-8859-1 \ US-ASCII \ UTF-16BE
如果不传charset,默认为UTF-8

4. HexString转byte[ ]

public static byte[] hexStrToByteArray(String str) {
    if (str == null) {
        return null;
    }
    if (str.length() == 0) {
        return new byte[0];
    }
    byte[] byteArray = new byte[str.length() / 2];
    for (int i = 0; i < byteArray.length; i++){
        String subStr = str.substring(2 * i, 2 * i + 2);
        byteArray[i] = ((byte)Integer.parseInt(subStr, 16));
    }
    return byteArray;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值