1. 10进制,2进制,8进制,16进制 基础
 
2进制就是每一位用01表示;8进制就是每一位用01234567表示;16进制就是每一位用0123456789ABCDEF表示
各种进制的转换:
2进制0000 0001 0010 0011 0100 0101 0110 0111
16进制0 1 2 3 4 5 6 7
2进制1000 1001  1010    1011  1100  1101  1110  1111
16进制8  9  A10 B(11)  C(12)  D(13)  E(14)  F(15)
2进制 000 001 010 011 100 101 110 111
8进制 0 1 2 3 4 5 6 7
2进制转10进制:
比如说101010100110进制就是整数部分从低位往高位乘2的方 就是
0X20次方+1X21次方+0X22次方+1X23次方+0X24次方+1X25次方+0X26次方+1X27次方
小数部分就是从高位往低位乘2的负数次方
0X2-1次方+1X2-2次方
然后把整数部分和部分求得的结果相加就行了
8进制转10进制:
2进制转10进制
只不过把乘2的方改成了乘8的方
其他相同
16进制转10进制:
2进制转10进制
把乘2的方改成乘16的方
16进制中A=10 B=11 C=12 D=13 E=14 F=15
而在表示上,为了区分2进制,8进制,16进制和10进制
8进制前面加一个字母O(是大写字母O不是数字0
16进制在前面加上OX 或者 后面 H
例如:308进制写成 O36 3016进制写出 OX1D 或者1DH
2. 字符和字节的区别
1个字节等于8bit位,每个bit位又0/1两种状态也就是说一个字节可以表示256个状态,计算机里用字节来作为最基本的存储单位。一般来说,英文状态下一个字母或数字(称之为字符)占用一个字节,一个汉字用两个字节表示。(只是在ASCII下这样,Unicode不是)
3. ANSIASCIIUnicodeGB-2312UCS-2UTF-8关系
这些编码标准之所以存在,是因为:
很久很久以前,有一人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为字节 
再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就把这机器称为计算机

  开始计算机只是在美国使用。八位的字节一共可以组合出25628次方)种不同的状态。(最早的ASCII

  他们把其中编号从0开始到3132种状态分别规定了特殊的用途,一但终端、打印机遇到了这些被传过来的字节时,就要做一些约定的动作。遇上0x10,终端就换行,遇上0x07, 终端就向人们嘟嘟叫,遇上0x1B, 打印机就打印反白的字,或者终端将使用用彩显示字母。他们看到这样很好,于是就把这些编号0x20以下的状态称为控制码,这些编号称为字符编码。这样就出现了编码!
ANSI  :  American  National  Standards  Institute  的缩写意思是美国国际标准学会也就是制定国际标准的组织
ASCII:  "美国信息交换标准码 "的英文缩写(American  Standard  Code  Information  Interchange),  0-255,  比如 "A "AscII值是65, "B "AscII值是66,“a“的AscII值是97
ANSI ASCII联系就是:ASCII标准是ANSI这个组织制定的!
ASCII GB2312 Unicode 来由:
ASCII是最早美国ANSI组织制定的编码,用了256位的127位表示英文字母和一些符号,但是很多国家并不使用英文,有许多文字是ASCII无法表示的,为了可以让计算机保存这些的文字,他们决定采用ASCII编码里第127号之后的空位来表示这些新的字母和符号,还加入了很多画表格时需要用到的横线、竖线、交叉等图形符号,一直把序号编到了八位字节可以表示的最后一个数字255。从128255这一区域的字符集被称扩展字符集。但是随着中国强大,中文只就需要加入到计算机里,所以中国自己编制了数字转unicode编码GB2312(后来到最高级的GBK18030)编码,把128后到255位的拿来用了。又因为汉字就有6000多个,所以根本不够用,于是,我们把那些编码在127之后的奇异符号(扩展字符集)直接取消掉,并做出规定:一个编码小于127的字符与原来ASCII表示的意义相同,但当两个编码大于127的字符连在一起时,就表示一个汉字,前面的一个字节(高字节)取值0xA10xF7,后面一个字节
(低字节)取值0xA10xFE,这样用两个字节就可以组合出大约7000多个简体汉字了。也就是两个字节表示一个汉字了。后来,干脆把127前的也改成两个字节表示,这就是“全角”了。相对的,原来编码在127以下的那些只用一个字节表示的字符就叫半角字符了。
但是,这样全球太多国家,太多语言了,每个国家都编一套,不现实!于是ISO(国际标谁化组织)来了。用Unicode编码来统一全球,但是如果还用8位一个字节这样不够用,于是,Unicode直接用2个字节代表一个字符,也就是16位!对于ASCII里的那些半角字符,UniCode保持其原编码不变,只是将其长度由原来的8位扩展为16位,而其他国家的语言文字则全部重新统一编码。由于半角英文符号只需要用到低8位,所以其高8位永远是0,因此这种大气的方案在保存英文文本时会多浪费一倍的存储空间。
UCS2USC4
Unicode是为整合全世界的所有语言文字而诞生的。任何文字在Unicode中都对应一个值,这个值称为代码点code point)。代码点的值通常写成 U+ABCD 的格式。而文字和代码点之间的对应关系就是UCS-2Universal Character Set coded in 2 octets)。顾名思义,UCS-2是用两个字节来表示代码点,其取值范围为 U+0000U+FFFFUSC-4就是用四个字节表
示代码点,怕以后不够用,才增加到4位,现在是两个字节
为何每个Unicode字符 写成 U+ABCD 的格式呢? 因为,U就是Unicode编码,而ABCD是这样的,因为Unicode是用两个字节,也就是16位(一个字节8位)来表示一个字符,那么就等于可以有216次方=65536个不同字符(因为计算机只有01也就是开头所表达的希望用开,关两种状态表示地球上的东西,所为每个位只有01)。也就是Unicode可以表示65536种字符,而写成ABCD是用四个16进制的数字来表示,因为164次方=65536,那么就等于改为16进制表示,不然就要ABCDEFGHIJKLMNOP 16未来表示一个字符,这样太麻烦了。
UTF16UTF32UTF8
要注意,UCS-2UCS-4规定了代码点和文字之间的对应关系,并没有规定代码点在计算机中如何存储。规定存储方式的称为UTFUnicode Transformation Format),其中应用较多的就是UTF-16UTF-8了。UTF也是网络传输编码的方式。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。