首页 > 其他 > 详细

NSUInteger设为负数

时间:2021-04-13 23:40:46      阅读:41      评论:0      收藏:0      [点我收藏+]

大家都知道NSUInteger是表示 无符号整形数值 即自然数

但实际操作的时候,发现NSUInteger其实是可以设置成负值的,并且不报??

所以本来要规避的一些错误就无法规避,还是得自己处理

 

技术分享图片

 

 

 

技术分享图片

 

 

技术分享图片

 

至于不会执行的原因就变成了-----有符号和无符号数的比较
而编译器在判断有符号数和无符号数进行比较时,一律会将有符号数转化为无符号数

即将NSInteger类型的值-25转换为NSUInteger类型,也就是我们看到的值

至于为什么是这个值:参考https://www.jianshu.com/p/684dbd35dc75

 

 

综上:

1、我们要做数值比较时,还是要保证类型相同,不然就会出现-25>30的怪现象

2、NSUInteger严格按照类型使用,虽然不会报??,但我们会拿到脏数据(不是我们想要的数据)

 

NSUInteger设为负数

原文:https://www.cnblogs.com/lijianyi/p/14654772.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!