C语言short上溢出程序,C语言溢出计算

类型名称

占字节数

其他叫法

表示的数据范围

char

1

signed char

-128 ~ 127

unsigned char

1

none

0 ~ 255

int

4

signed int

-2,147,483,648 ~ 2,147,483,647

unsigned int

4

unsigned

0 ~ 4,294,967,295

short

2

short int

-32,768 ~ 32,767

unsigned short

2

unsigned short int

0 ~ 65,535

long

4

long int

-2,147,483,648 ~ 2,147,483,647

unsigned long

4

unsigned long

0 ~ 4,294,967,295

float

4

none

3.4E +/- 38 (7 digits)

double

8

none

1.7E +/- 308 (15 digits)

long double

10

none

1.2E +/- 4932 (19 digits)

最大值溢出后变为最小值;最小值溢出后变为最大值。

如:

char a=127 a+1为-128

char a=-128 a-1为127

uchar a=255 a+1为0

uchar a=0 a-1 为255

溢出后的数值计算:

上溢: - [max_count]

下溢: +[max_count]

例如:

char a=126 ,则a + 45 =126+45 =172-256 = -85

uchar a = 2 ,则 a - 100 = -98+256 = 158

a,b 基本类型相同时,有符号与无符号数的转换:

无符号a-->有符号b

if(a

else b = a - [max_count]

有符号数a-->无符号数b

if(a>0) b = a

else b = a + [max_count]

例1 char a = -119 ;uchar b = a;则b = -119 +256 = 137

例2 uchar a = 137 ; char b = a; 则 b = 137 - 256 = -119

例3 signed char chr = 127;

int sum =127;

chr+=10;

sum+=chr;

sum值是

思路 先把chr当成无符号数,chr +=10变成137 然后把chr转化为有符号数137-256 = -119 。-119 + sum (127) = 8.

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值