简单理解信息在计算机中的表示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简单理解信息在计算机中的表⽰
信息是⼀个很宽泛的概念,说⼤了是与物质和能量⿍⽴的⾃然界三要素,这⾥仅仅涉及到计算机中的信息;
众所周知,对计算机⾃⾝⽽⾔,所有信息都是0/1⼆进制形式;
作为JavaEE/Android程序员,在开发过程中有时会遇到字符编码,进制转换这样的基础问题,虽然依靠经验或者⽹络搜索能很快实现功能,但每次都感觉对基本概念理解得不是很透彻,不如把现有的理解记录下来,以备后⽤;
信息在计算机中⼤致分为控制信息和数据信息;
控制信息是计算机系统内部运转⽤到的控制命令,例如读写命令,中断信号,⽚选信号,复位信号,就绪信号等;当然都是⼆进制表⽰;
数据信息指计算机可运算、可存储、可传输、可采集、可输出的各种数据;可分为数值数据,⽂本数据(字符,字串),多媒体数据(图像,⾳频,视频),⼆进制数据(可执⾏⽂件等);
计算机信息的表⽰跟信息的处理,传输,存储,输⼊/输出⼀样,是计算机系统最基本的功能之⼀;
计算机中的信息表⽰可分为硬件系统可直接表⽰的信息,和软件系统可表⽰的信息;后者如数据结构,数据库表结构,XML/Json结构等等;
这⾥,只讨论计算机硬件系统对信息的表⽰;
位,Bit,Binary digit的缩写,是计算机中信息表⽰的最⼩单位;跟电⼦计算机的“电⼦”有关,⾼低电平;
字节,Byte, 8Bit, 可表⽰⼀个英⽂字符ASCII码;跟计算机的发明国美利坚所⽤语⾔有关;
定点数,⼩数点位置固定不变;定点⼩数的⼩数点紧跟符号位之后;定点整数⼩数点在有效数值部分之后;
浮点数,⼩数点位置可以浮动;尾数,阶码,底数;尾数位数越多,所表⽰数值的密度越⼤,精度越⾼;阶码位数越多,所表⽰数值的范围越⼤;
⽆符号数,全部⼆进制位均表⽰数值位;
有符号数,最⾼位被⽤来表⽰符号位;
机器数,⼀个数的⼆进制表⽰形式,最⾼位表⽰符号;
真值,机器数代表的真正数值;
原码,符号位加上真值的绝对值;
反码,正数的反码与其原码相同,负数的反码是对其原码逐位取反,符号位除外;
补码,正数的补码与其原码相同,负数的补码是在其反码的末位加1;
在计算机中,数值⼀律采⽤补码表⽰;
补码设计⽬的:
-使符号位能与有效值部分⼀起参加运算(⾃动溢出),简化运算规则;
-使减法运算转换为加法运算(同余,模数,A-B 等于 A+B的补码),简化计算机中运算器的线路设计;
溢出,计算得出的数值超出了整数类型可以表⽰的数值范围;
进制,进制主要包含基数和位权两个因素;计算机常⽤的是⼆进制,⼋进制,⼗六进制;
N进制转换成⼗进制,按权求和;
⼗进制转换N进制,整数部分-除N取余,⼩数部分-乘N取整;
⼀般可借助⼆进制或⼗进制做中间转换;
具体的转换原理和算法及程序实现在另外的⽂章再做介绍;
(todo 补码运算和浮点数运算)
字符编码和字符集:
ASCII-American Standard Code for Information Interchange. 1bit+7bit; 英⽂字符编码,⽼美出品,第⼀个bit为0,可表⽰128个字符;扩展集第⼀个bit为1,加起来
表⽰256个字符;
这对于⾮英语国家特别是亚洲国家的⽂字表⽰是远远不够啊,于是各国开始扩展⾃⼰的字符集;各⾃扩展的结果就是互不兼容;同⼀个⼆进制串在不同语⾔国家表⽰不同字符;
于是出现了伟⼤的万国码Unicode,可统⼀表⽰世界上所有国家的⽂字; Unicode仅仅给出了字符的编码值,这些值在计算机中具体怎么表⽰是由UTF来实现的;
具体有:UTF-8/UTF-16/UTF-32;
UTF-8⽤可变长度(1-6)字节表⽰Unicode值,UTF-16⽤2字节或4字节表⽰Unicode值;UTF-32⽤4字节表⽰Unicode值;
既然是可变多字节表⽰,为了避免歧义,就要指明字节的长度和顺序(BOM);
UTF-8 encoding scheme:
for 1 byte unicode character: the first bit is 0, the rest 7 bits are the unicode value of the character;
for n byte unicode character: the first n bits of the first byte are 1, and the n+1 bit is 0, the first 2 bits of the rest bytes are 10, and all the rest bits are the
unicode value of the character;
Unicode符号范围 | UTF-8编码⽅式
(⼗六进制) |(⼆进制)
------------------------------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
其它字符编码还有:
UCS-Universal Character Set: UCS-2(16bit), UCS-4(32bit),
EBCDIC-Extended Binary Coded Decimal Interchange Code:8bit.
ISO 8859: 8bit,
GB2312:16bit, 94区*94位, 简体中⽂.
BIG5: 16bit, 繁体中⽂.
关于big-endian(FEFF)和little-endian(FFFE):
big-endian: the higher(most significant) byte stored in the lower memory address.
little-endian: the lower(least signaficant) byte stored in the lower memory address.
BOM-Byte Order Mark,ZERO WIDTH NO-BREAK APACE,FFFE,
(todo 多媒体信息表⽰,图形,图像,动画,⾳频,视频,虚拟现实)。

相关文档
最新文档