数据结构类型

本文讨论了在处理整型数据时如何避免除法导致的精度损失和溢出问题,建议调整计算顺序和预估结果范围。对于浮点数,提到了精度问题,避免数量级相差过大导致的误差,以及不应直接进行相等比较,而是设定一个可接受的精度范围进行比较。同时,还提醒注意字符串和字符的使用,避免奇异字符串,警惕边界错误。
摘要由CSDN通过智能技术生成

1整型数

检查整型相除。当你使用的是整型数时,7/10并不等于0.7,它等于0,这也同样适于中间
结果。在客观世界中10*(7/10)=7,而在整型算法中10*(7/10)却等于0,因为(7/10)等于0,解
决这个问题最简单的办法是调整计算顺序,如上例的表达式可以改写为:(107)/10,使得除
法运算在最后进行。
检查整型是否溢出。在进行整型加法或乘法运算时,应明确可能的最大整型数。通常不带
符号的最大整型数是65535,或说是2的16次方减1。当两个整型数相加的结果超过可以的最大整
型数时就会出现问题。比如,250
300,正确的答案是75000。但由于整型溢出,你得到的答案很
可能是9464,(75000-65536=9464)。下面是一些常见类型的整型数的范围:
整型数类型 范围
有符号8位 -128到127
无符号8位 0到255
有符号16位 -32768到32767
无符号16位 0到65535
有符号32位 -2,147,483,648到2,147,483,647
无符号32位 0到4,294,967,295
防止整型溢出的最简单办法是先笔算一下表达式中每一项的值是否溢出。例如,在整型表
达式 M=J*K 中,J 的最大可能值是 200,而 K 的最大值是 25,从而 M 的最大值为 5000,小于
65535,因而这一运算是可行的,但若 K 的最大值为 2000 的话,那么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值