读书人

java bit位、byte字节amp;数值范畴amp;转化

发布时间: 2012-09-10 22:20:12 作者: rapoo

java bit位、byte字节&数值范围&转化
1 bit = 1 二进制数据1 byte = 8 bit1 汉字 = 2 byte = 16 bit
1. bit:位
一个二进制数据0或1,是1bit;
2. byte:字节
存储空间的基本计量单位,如:MySQL中定义 VARCHAR(45) 即是指 45个字节;
1 byte = 8 bit

Byte:有符号整形 用二进制表示时候最高位为符号位 0代表正数 1代表负数 8bit -128(-2^7 1000 0000) --- 127(2^7 - 1 0111 1111)
正数在计算机中是以原码形式存在的,负数在计算机中是以其补码(负数的绝对值的原码转为二进制再按位取反后加1)形式存在的
Short:作为2字节16位有符号整形
Int:作为4字节32位有符号整形
Long:作为8字节64位有符号整形
Char作为16位无符号整形 其范围为 0 -- 2的15次方(最小:'\u0000' 最大:'\uFFFF')
Float作为32位的浮点型
Double 作为64为浮点型

2^7 = 128
2^15 = 65536
2^31 = 2147483648
2^63 = 9223372036854775808

// 返回无符号的2进制表示 1110011String hex = Integer.toBinaryString(115);System.out.println(hex);// 返回2进制的字符串1110011对应的值 115System.out.println(Integer.valueOf("1110011", 2)); // 16进制值转换成二进制System.out.println(Long.parseLong("49", 16));System.out.println(Long.parseLong("2F", 16));// 汉字“中”用UTF-8进行URLEncode的时候,得到%e4%b8%ad(对应的ISO-8859-1的字符是??-)String item = new String(new byte[] { (byte) 0xe4, (byte) 0xb8, (byte) 0xad }, "UTF-8");// 中System.out.println(item);item = new String(new byte[] { (byte) 0xe4, (byte) 0xb8, (byte) 0xad }, "ISO-8859-1");// ??-System.out.println(item);System.out.println(new BigInteger("253").toByteArray());System.out.println(Integer.toBinaryString(253));// 中item = new String(item.getBytes("ISO_8859_1"), "UTF-8");System.out.println(item);// ??-item = new String(item.getBytes("UTF-8"), "ISO_8859_1");System.out.println(item);

读书人网 >编程

热点推荐