数据压缩小作业 | 计算机编程中的数据类型

总结归纳计算机编程中的各种数据类型,其表示形式和计算方法。重点关注类型转换、数值溢出和移位等操作。

整型

short/unsigned short(16位)

int/unsigned int(32位)

long/unsigned long(32位)

·表示方法

short int a; //短整型

unsigned short int a;//无符号短整型
int a;

unsigned int a;//无符号整型
long int a;

unsigned long int a;//无符号长整型

·溢出

对于unsigned整型,溢出后的数会以2^(8*sizeof(type))作模运算;

对于signed整型,溢出会产生未定义行为。

浮点型

范围由指数的位数来决定,精度由尾数的位数来决定。

float(32位)单精度
1位符号位,8位指数位,23位尾数位

double(64位)双精度
1位符号位,11位指数位,52位尾数位

·表示方法

float a;

double a;

·溢出

浮点数的溢出是以阶码溢出来表现的,阶码的符号位若为01或10表示溢出。
向上溢出时,若浮点数为正数则记为+∞,若浮点数为负数则记为-∞;
向下溢出时,则置运算结果为机器零。

字符型

char(8位)
·表达方式

char a;

·溢出
对于unsigned字符型,溢出的值会与256求模;
对于signed字符型,溢出后会取第八位,并进行补码的反向操作,减一后取反。

·计算方法
char与unsigned char均转换为int型进行计算。

移位

整型和字符型可进行移位操作,浮点型不可进行移位操作。
1.有符号数据类型的移位
负数左移(×2):符号位始终为1,其他位左移,低位补0;
正数左移(×2):所有位左移,有可能会变为负数,低位补0;
负数右移(÷2):取绝对值后右移,高位补1,再取相反数(补齐符号位);
正数右移(÷2):所有位右移,高位补1。

2.无符号数据类型的移位
左移与右移均为逻辑移位
左移(×2):不会导致符号位出现缺位,不需考虑符号位,低位补0;
右移(÷2):高位补1。

类型转换

自动转换
自动转换都是隐式的保值转换,转换原则是由低类型向高类型的转换。
在这里插入图片描述
int型最低,long double型最高。其中,short型和char型自动转换为int型,float型自动转换为double型。

强制转换
1.显示强制转换
通过强制转换运算符()来实现。强制转换一般用来将高类型转换为低类型,可能会出现数据精度的损失,是非保值转换。是暂时的,不被强制转换时还为原来的类型。

double a=2.25;
a=(int)a;

2.隐式强制转换
①赋值表达式中,右值表达式的类型隐式转换为左值变量的类型。

int a=true;//bool型被转换为int型
bool a=2;//int型被转换为bool型

②被调用函数带有返回值时,将return后面的表达式隐式强制转换为函数的类型。

int add(double a,double b)

{

         return(a+b)

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值