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

来源:互联网 发布:非农数据哪个网站 编辑:程序博客网 时间:2024/06/09 20:10

单位

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

换算

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

8种基本数据类型

类型 存储需求 bit数 取值范围 byte 1字节 1*8 [-2^31,2^31-1] short 2字节 2*8 [-32768,32767] int 4字节 4*8 [-2^31,2^31-1] long 8字节 8*8 [-2^63,2^63-1] float 4字节 4*8 [-2^128,2^127] eg:3.14F double 8字节 8*8 [-2^1024,2^1023] eg:3.14 char 2字节 2*8 无 boolean 1字节 1*8 false、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;}
0 0