1个字节(Byte)=8位 bit
1位就是计算机中的 1 或0
比如10进制1 ,ASCII码是49,二机制是: 00110001
它占用一个字节。
ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。
UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。
Unicode编码:Unicode是一种编码规范,是为解决全球字符通用编码而设计的,而UTF-8,UTF-16等是这种规范的一种实现,它是接口,UTF-8和UTF-16是实现类.
GBK编码:一个英文等于一个字节,一个中文(含繁体)等于两个字节。
GB2312编码:一个英文等于一个字节,一个中文(含繁体)等于两个字节。
符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。
上代码++++>>>
public static void main(String[] args) {
try {
String str = "1";
byte[] defaultByte = str.getBytes();
byte[] utf8Byte = str.getBytes("UTF-8");
byte[] gbkByte = str.getBytes("GBK");
byte[] gb2312Byte = str.getBytes("gb2312");
byte[] unicodeByte = str.getBytes("unicode");
System.out.println(toString(defaultByte));
System.out.println(toString(utf8Byte));
System.out.println(toString(gbkByte));
System.out.println(toString(gb2312Byte));
System.out.println(toString(unicodeByte));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
public static String toString(byte[] array) {
StringBuilder sb = new StringBuilder();
for (byte b : array) {
sb.append(b);
sb.append(" ");
}
return sb.toString();
}
“1”的结果为:
49
49
49
49
-2 -1 0 49
“a”的结果为:
97
97
97
97
-2 -1 0 97
“中”的结果为:
-28 -72 -83
-28 -72 -83
-42 -48
-42 -48
-2 -1 78 45
“薅”的结果为:
-24 -106 -123
-24 -106 -123
-34 -74
-34 -74
-2 -1 -123 -123
Unicode怎么是4个字节呢??????????????
经过研究,Unicode 等同于 UTF-16,用4个字节代表一个字母或者一个中文
字节不同数量级间
数据存储是以10进制表示,数据传输是以2进制表示的,所以1KB不等于1000B。
1KB=1024B;1MB=1024KB=1024×1024B。其中1024=210。
1B(byte,字节)= 8 bit(见下文);
1KB(Kibibyte,千字节)=1024B= 2^10 B;
1MB(Mebibyte,兆字节,百万字节,简称“兆”)=1024KB= 2^20 B;
1GB(Gigabyte,吉字节,十亿字节,又称“千兆”)=1024MB= 2^30 B;
1TB(Terabyte,万亿字节,太字节)=1024GB= 2^40 B;
1PB(Petabyte,千万亿字节,拍字节)=1024TB= 2^50 B;
1EB(Exabyte,百亿亿字节,艾字节)=1024PB= 2^60 B;
1ZB(Zettabyte,十万亿亿字节,泽字节)= 1024EB= 2^70 B;
1YB(Yottabyte,一亿亿亿字节,尧字节)= 1024ZB= 2^80 B;
1BB(Brontobyte,一千亿亿亿字节)= 1024YB= 2^90 B;
1NB(NonaByte,一百万亿亿亿字节) = 1024 BB = 2^100 B;
1DB(DoggaByte,十亿亿亿亿字节) = 1024 NB = 2^110 B;[1]
GBK与GB2312的区别??
GBK是新标准,收录了2万多个汉字和符号
GB2312只收录了6千多
GBK是完全兼容GB2312的
用UTF-8 存储:
1KB 可以存放 1024 个英文字母 341个汉字
1MB可以存放 104.8万个英文字符 34.9万个汉字
转载于:https://blog.51cto.com/12324480/1876260