数据表示与信息编码
最后更新时间:
页面浏览: 加载中...
纯属好玩。
Introduction
计算系统
计算机
数据
计算基础
数,二进制
逻辑,状态
数据
抽象,含义延伸到更大的范畴
计算机底层:0、1组合各种序列,表示数和各种对象
数据科学
以数据为研究对象
数
人的认知:文字和数
数学:研究数的抽象表示和运算规则
计算机:表示数和实现其运算规则的方法
计算机最基础的知识
数的表示使用的是二进制
逻辑,判断和运算的实现
数制
多项式表示,权系数表示法
数序计数法,如123.456
R 基数,R进制
Ai,数符(码),i位数
Ri,权系数,权重
-m,小数部分
n-1,整数部分
R进制: 逢R进1
常用进制
十进制(Decimal System),0~9共10个数码符号
381.52=3×102+8×101+1×100+5×10-1+2×10-2
二进制(Binary System),0、1两个数码符号
二进制的位(bit,比特),逢2进1
101011012= 1×27+0×26+1×25+0×24+1×23+1×22+0×21+1×20
八进制(Octal System),0-7 共8个数码
8= 23 一位八进制对应于三位二进制
十进制转换为二进制
十进制整数部分用2整除,余数按顺序组合即得对应的二进制:45=1011012
十进制小数部分乘以2,将进位按序组合:0.625=0.1012
数制转换
二进制 < — > 八进制
以小数点为界,分别将3位二进制与1位八进制对应
二进制 < — > 十六进制
以小数点为界,分别将4位二进制与1位十六进制对应
数制转换
2、任意进制整数R进制
对R求余(modulo)后的商再次对R求余,直到商等于0
3、任意进制小数转换
Self-Learning
无符号整数在计算机中的表示
210=102 12710=11111112 38910=1100001012
若2、127、389这3个整数在内存中如下连续存放:
101111111110000101
计算机如何分辨?
一种解决方案:设置固定的长度(譬如,整数占16位)
000000000000001000000000011111110000000110000101
实际上,计算机中,每种类型的数都规定了固定的长度(位数)
有符号整数如何表示?
原码:
约定:二进制最高位0表示正数,1表示负数
例如, 01010101表示+1010101,即十进制的85;
11010101表示 - 1010101,即十进制的-85
这种表示法叫“原码”表示。
缺点:运算时符号要单独考虑,电路设计复杂。
有符号整数如何表示?
反码:
对原码各位取反:
-85原码:11010101,对应反码:10101010(符号位不变)
补码:
=反码+1
-85原码:11010101,对应补码:10101010+1=10101011
优点:运算时符号不用单独考虑,简化电路设计。
有符号整数如何表示?
正整数的补码、反码和原码相同;
负整数的补码=反码+1
现代计算机中:整数都是以补码来表示的。
思考:-1在计算机中是如何表示的(假设整数占8位)?
-127呢?
10000001
11111111
实数在计算机中的表示
1.定点数(fixed point)表示
固定小数点位置
定点纯小数格式
定点纯整数格式
65535.110 = 1111111111111111.00011001100110011…0011…
由于位数限制,小数在计算机中不能精确表示!
定点表示法表示的实数范围及精度都很小!
实数在计算机中的表示
2. 浮点数(float point)表示
科学计数法是指用指数表示数的范围
Example:0 10010101 10101000000000000000000
此种表示法可表示的实数范围及精度都很大。
二进制运算
二进制加法
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 1 0
整数加法
多位二进制相加。
注意溢出(超出固定位数所能表示值的范围)
二进制运算
二进制乘
一位二进制乘0 × 0 = 0,0× 1 = 0,1× 0 = 0,1×1 = 1
多位二进制相乘:13×6=78
计算机中采用移位、相加实现乘法运算
二进制运算:补数减法
减法规则:
连同符号位和被减数的补数相加,丢掉进位
如果和数符号位为0,运算结果就是差;
如果和数符号位为1,则要将和数再次取补数得到差。
例如,十进制58-66,用8位二进制计算:
和数最高位1,再次求补得到: 10001000,即-8
补数的一个重要特性:补数的补数还原为原机器数
数据
数据
计算机中存储、运算、交换和管理的所有的0和1
数据世界
预测2020,数据量44ZB
1ZB=1000EB,1EB=109GB)
数和码
数(number ):计算
码(Code):标记特定对象
文本和文档
Text and Document
Text
文本由字符组成,每个字符是
定长的二进制代码
文本数据
字符编码的二进制序列
字符编码标准
ASCII
Unicode
汉字
ASCII
ASCII, 7位二进制编码
American Standard Code for Information Interchange,美国标准信息交换码
文本字符数据:英文字母、数字、和常用符号
ISO/IEC 646
ASCII
Qwerty键值—ASCII码
Enter — CR,LF
0 —9 数字键 — ASCII 48,49,…,57
A — Z大写字母键 — ASCII 65 — 90
a — z小写字符键 — ASCII 97—122
其他符号键
字母转换
小写 to 大写 -32
大写 to 小写 +32
Unicode
Unicode 统一码、单一码、万国码
Apple公司发起
Unicode协会开发
表示几乎世界上所有书写语言的字符编码标准
ISO10646
Unicode16 (Unicode8,Unicode32)
双字节
兼容ASCII字符集
Example,字符“计算机” Unicode16码为:
十六进制:8BA17B97673A
机器码:100010111010000101111011100101110110011100111010
Unicode 实现
编码
字符的数据表示,用于存储和传输
显示和打印输出 需要处理程序—视觉图像
多字节编码
顺序问题,例如字符A,单字节 41(hex)
双字节 Unicode 0041 或 4100, so
UTF
Unicode Transformation Format
解决不同系统的编码顺序问题,例如UTF8
汉字编码
中文系统扩展了ASCII,国家强制标准
GB2312-1980
简化字6763个,总计7445个字符
1993年的GBK
2.1万多个汉字
GBK支持ISO10646 CJK 汉字
GB18030编码,2005版
超大型中文编码字符集,汉字和字符7万余个
可变4字节编码:常用字符字节数少
与Unicode的差异
汉字编码:字符存储格式
Unicode: 字符编号
转换: UTF,或如 Windows的code page
文档
Document
文本格式的扩展,包括文本字符,and
特征码,如字体、字型
And,字符之外的其他数据类型
Font
字体库,非字符编码
输出这种字体的计算公式
另一种涵义
资料,通常也是文本或文档
数据压缩
各种数据都有编码标准
大体量,存储、传输的效率和方法
字符编码
等长编码
不等长编码
压缩技术
压缩技术
编码方法/算法
霍夫曼编码
RLE编码
RLE(Run Length Encoding)
相同的连续编码标记为编码及数量
Example:
一段红色线的长度有200个点,点数据8位
#R200
#为控制位,R为颜色,200为行程长度
应用广泛
无损压缩 ,如文本,程序,and
有损压缩,如
音频、视频、图像…
有损压缩编码
解压后的数据不能完全重现压缩前的数据,往往用于多媒体数据 的压缩
数据冗余。减少或者丢弃某些冗余数据,并不会损失数据所表示的有效信息,或者这种损失是可以接受的。
严格意义上说,音、视频及图形图像数据并不需要“完整无缺”,如果损失了少量的数据(在人的视、听范围内)能够换来更高的压缩效率,那么也是可取的。
大量多媒体数据,尤其是音、视频数据、图像数据都是有损压缩的。例如,图片(JPEG)数据、MPEG视频数据、MP3数据等。
压缩编码
为了提高数据的传输效率,压缩技术就能起到很好的作用。即使网络速度已相对较快的今天,仍然要考虑传输流量,尤其是在线视频,出现卡顿是会影响用户体验,因此采用的都是压缩后的视频数据,而且是有损压缩为主。
通用的压缩解压程序,如ZIP、RAR等,它们的主要作用是在传输多个文件时,将其压缩在一个包中,看上去是一个文件,这个过程称为“打包”。接收到这个压缩文件后再经过解压(称为解包)还原。
编码(David Huffman),无损压缩
出现的码较短,很少出现的码字较长
数据的总长度变小,存储空间小,传输快
频率相关编码(Frequency-dependent encoding)