数据压缩预备知识(一)数据类型及常见表示方法

数据类型

基础

一、二进制及其运算

在计算机中,数据以二进制的形式表示。
〖(XXX)〗_b ,如〖(1011.11)〗_b。 其权值为2^i,基数为2,系数为0与1。
二进制按权展开相加得十进制数值,十进制整数部分除2取余,小数部分乘2取整得二进制数值。如:
在这里插入图片描述在这里插入图片描述
二进制数分为有符号数和无符号数。其中,有符号数的最左位表示符号,0+,1-。
有符号数表示方法分为原码,反码和补码。正数三码相同,负数反码除符号位取反,补码在反码基础上+1。
计算方法:二进制数运算时以补码进行加运算,结果仍为补码。

二、位与字节

位(bit):二进制数中的某位数,只能为0或1。
字节(byte):8位二进制数位一个字节。

编程中的数据类型

三、C++中的数据类型表示

①整型(int)
int	//4 个字节	-2147483648 到 2147483647
unsigned int	//4 个字节	0 到 4294967295
signed int	//4 个字节	-2147483648 到 2147483647
short int	//2 个字节	-32768 到 32767
unsigned short int	//2 个字节	0 到 65,535
signed short int	//2 个字节	-32768 到 32767
long int	//8 个字节	-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
signed long int	//8 个字节	-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long int	//8 个字节	0 到 18,446,744,073,709,551,615
②浮点型
float	//4 个字节	占4个字节(32位)内存空间,+/- 3.4e +/- 38 (~7 个数字)
double	//8 个字节	占8 个字节(64位)内存空间,+/- 1.7e +/- 308 (~15 个数字)
long double	//16 个字节	占16 个字节(128位)内存空间,可提供18-19位有效数字。
③字符型(其本质上仍为整型)
char	//1 个字节	-128 到 127 或者 0 到 255
unsigned char	//1 个字节	0 到 255
signed char	//1 个字节	-128 到 127

四、C++中数值的计算

常用运算符:
  • 把两个操作数相加 结果不能超过类型大小上限,否则溢出,为不准确结果。
  • 从第一个操作数中减去第二个操作数
  • 把两个操作数相乘
    / 分子除以分母
    % 取模运算符,整除后的余数
    ++ 自增运算符,整数值增加 1
    – 自减运算符,整数值减少 1
类型转换:

自动数据类型转换:发生在赋值、表达式计算、函数传参时。
手动类型转换:var = (typename) value
通常数值范围小的类型转换为数值范围大的数据类型不会丢失数据,但较大double类型转换为float可能丢失精度,double/float转换为int丢失小数(没有溢出时)。
整型数据类型大小排序(从小到大): bool, char, signed char, unsigned char, short, unsigned short, int, unsigned int, long, unsigned long, long long, unsigned long long
浮点数排序大小:float, double, long double

数据溢出:

假设在一个使用了 2 个字节内存的 short int 类型变量中存储了0111111111111111 B,其十进制为32767,如果+1,则该数据变为1000000000000000 B,其十进制为-32768,并不为+32768。s实际情况下数据溢出远比本例复杂,但可以确定的是溢出后数据会发生错误。

位移操作:
<<	//二进制左移运算符。左操作数的值向左移动右操作数指定的位数。	60 << 2 将得到 240,即为 1111 0000
>>	//二进制右移运算符。左操作数的值向右移动右操作数指定的位数。	60 >> 2 将得到 15,即为 0000 1111
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值