首页 > 代码库 > 位/字节/ASCII/UTF-8/GBK/GB2312/Unicode 扫盲
位/字节/ASCII/UTF-8/GBK/GB2312/Unicode 扫盲
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万个汉字
本文出自 “12314480” 博客,请务必保留此出处http://12324480.blog.51cto.com/12314480/1876260
位/字节/ASCII/UTF-8/GBK/GB2312/Unicode 扫盲