码迷,mamicode.com
首页 > 其他好文 > 详细

易错点

时间:2021-03-08 13:45:25      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:整型   数据结构   math   比较   无符号数   并且   class   size   等价   

1.无符号数与有符号数比较
有时我们可能会遇到一些数据结构的大小的判定,比如判断两个堆(假设为heap1,heap2)中元素个数差值是否大于1

heap1.size() - heap2.size() > 1
heap1.size() > heap2.size() + 1

看似等价的两个比较的不等式,产生的效果未必相同
由于数据结构的大小采用的往往是无符号整型数,如果heap1.size() - heap2.size()的结果为负数,比如\(-1\),在无符号数中实际为\(4294967295\),二进制表示为\(11111111111111111111111111111111\),可以看出无符号数会将有符号数补码的符号位当作正常的数位,所以对应的数值就会很大,显然与我们的判断目的相违背

并且还需要注意,无符号数与有符号数比较时,要将有符号数转化为无符号数

易错点

标签:整型   数据结构   math   比较   无符号数   并且   class   size   等价   

原文地址:https://www.cnblogs.com/G-H-Y/p/14493750.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!