当前位置:网站首页>C陷阱与缺陷 第7章 可移植性缺陷 7.7 除法运算时发生的截断
C陷阱与缺陷 第7章 可移植性缺陷 7.7 除法运算时发生的截断
2022-08-01 21:00:00 【weixin_客子光阴】
除法运算时发生的截断
q = a / b;
r = a % b;
这里,不妨假定b大于0.
我们希望a,b,q,r之间维持怎样的关系呢?
1、最重要的一点,我们希望q * b + r == a,因为这是定义余数的关系。
2、如果我们改变a的正负号,我们希望这会改变q的符号,但这不会改变q的绝对值。
3、当b>0时,我们希望保证r>=0且r<b。例如,如果余数用于哈希表的索引,确保它是一个有效的索引值很重要。
但是它们不可能同时成立。
然而,C语言的定义只保证了第1条形式,以及当a>=0且b>0时,保证|r|<|b|以及r>=0.
0 <= h < HASHSIZE, n恒为非负,那么我们只需要像下面一样简单地写:
h = n % HASHSIZE;
然而,如果n可能为负数,而此时h也有可能为负,那么这样做就不一定总是合适的了。不过,我们已知h > -HASHSIZE,
因此可以这样写:
h = n % HASHSIZE;
if (h < 0) {
h += HASHSIZE;
}
更好的做法是,程序在设计时就应该避免n的值为负这样的情形,并且声明n为无符号数。
边栏推荐
猜你喜欢
[Personal work] Wireless network image transmission module
【Dart】dart之mixin探究
JS提升:手写发布订阅者模式(小白篇)
Application of Acrel-5010 online monitoring system for key energy consumption unit energy consumption in Hunan Sanli Group
Little data on how to learn?Jida latest small learning data review, 26 PDF page covers the 269 - page document small data learning theory, method and application are expounded
LTE time domain and frequency domain resources
[Multi-task model] Progressive Layered Extraction: A Novel Multi-Task Learning Model for Personalized (RecSys'20)
使用员工管理软件,解锁人力生产力新水平,提高人力资源团队灵活性
Pytorch框架学习记录8——最大池化的使用
响应式织梦模板清洁服务类网站
随机推荐
98.嵌入式控制器EC实战 EC开发板开发完成
职场如象棋,测试/开发程序员如何突破成长瓶颈期?
技能大赛训练:A部分加固题目
New graduate students, great experience in reading English literature, worthy of your collection
[Personal work] Wireless network image transmission module
使用百度EasyDL实现厂区工人抽烟行为识别
使用员工管理软件,解锁人力生产力新水平,提高人力资源团队灵活性
[Multi-task model] Progressive Layered Extraction: A Novel Multi-Task Learning Model for Personalized (RecSys'20)
Zheng Xiangling, Chairman of Tide Pharmaceuticals, won the "2022 Outstanding Influential Entrepreneur Award" Tide Pharmaceuticals won the "Corporate Social Responsibility Model Award"
图的邻接矩阵存储
Custom command to get focus
string
【luogu P1912】诗人小G(二分栈)(决策单调性优化DP)
Simple test of the use of iptables
微信小程序云开发|个人博客小程序
PyTorch笔记 - Attention Is All You Need (2)
外骨骼机器人(七):标准步态数据库
写给刚进互联网圈子的人,不管你是开发,测试,产品,运维都适用
Imitation cattle forum project
【Kaggle】House Prices