浅谈防不胜防的unsigned int的运算
发布时间 - 2026-01-10 21:58:43 点击率:次我很早之前就知道,unsigned int与int运算的时候,int会被转化为unsigned int来进行运算。一直觉得定这条规则的人是极度反人类的,虽说unsigned int可以表示更大的正值,但毕竟我们不太会把unsinged想像成一个负数,而一个负的int数可能在无意间就变成了最大的正数。

所以,我对这个问题很慎重。小心翼翼地,一直没怎么出过错。直到有一天。
第一回合
那是一个阳光明媚的午后,我正惬意地刷leetcode。要遍历vector中除最后一个元素的所有元素。我这样写道:
for(int i=0;i<nums.size()-1;++i) bulabula;
没什么错吧?没错!提交的时候发现程序出现了内存访问错误。
作为一个自信的程序员,我自然想到了编译器出了问题。于是在VS上测试,是没有问题的!Stupid Leetcode!居然说我的代码有问题,我的代码怎么可能有问题?
就在我要放弃这一题的时候,我突然想到了边界条件,于是把nums清空再测试,VS提示内存访问错误。Soryy Leetcode,是在下输了……
在进行一番绞尽脑汁之后,我把目光聚焦在了size_t,查了资料后发现,size_t就是个unsigned类型,恍然大悟……nums.size()-1就等于最大的正数,i与之比较,肯定是符合条件的!OH NO!
第二回合
在经历了上述事情之后,我一般会这么写程序:
for(int i=0;i<(int)nums.size()-1;++i) bulabula;
再也没有出现过问题。每次看到别人还写我之前那样的代码,我都会会意一笑,然后告诉他人的我心得。直到有一天,我看到一个大牛写了这样的代码:
for(int i=nums.size()-1;i>=0;--i) bulabula;
我想我发现了大牛的错误。有了上次的教训,这次我测试了一下边界条件。什么?居然正常运行?
在想了很久之后,我得出以下结论:nums.size()-1的确得到了一个最大的unsigned int,可是把它赋给int的时候,编译器就傻傻地直接把unsigned int赋给了int,于是int就为-1了。大牛毕竟是大牛……
在学知识的道路上总会有羊肠小道,多走一些羊肠小道,我才能知道有没有近道!加油加油!
以上就是小编为大家带来的浅谈防不胜防的unsigned int的运算全部内容了,希望大家多多支持~
# unsigned
# char
# 运算
# 大牛
# 羊肠小道
# 这一
# 是个
# 我要
# 是在
# 就在
# 出了
# 那是
# 不太
# 我一
# 一笑
# 我对
# 遍历
# 更大
# 很久
# 这个问题
# 把它
# 我把
# 能在
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
C++时间戳转换成日期时间的步骤和示例代码
JavaScript中的标签模板是什么_它如何扩展字符串功能
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
Laravel Session怎么存储_Laravel Session驱动配置详解
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
如何生成腾讯云建站专用兑换码?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
如何快速搭建自助建站会员专属系统?
如何在IIS7中新建站点?详细步骤解析
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
实例解析angularjs的filter过滤器
微信小程序制作网站有哪些,微信小程序需要做网站吗?
移动端脚本框架Hammer.js
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
LinuxCD持续部署教程_自动发布与回滚机制
Laravel如何集成Inertia.js与Vue/React?(安装配置)
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
如何快速搭建高效WAP手机网站?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
Laravel如何实现API资源集合?(Resource Collection教程)
在centOS 7安装mysql 5.7的详细教程
如何快速搭建FTP站点实现文件共享?
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
Laravel如何发送系统通知?(Notification渠道示例)
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
如何快速搭建高效WAP手机网站吸引移动用户?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
linux top下的 minerd 木马清除方法
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
如何挑选优质建站一级代理提升网站排名?
微信小程序 scroll-view组件实现列表页实例代码
Python并发异常传播_错误处理解析【教程】
网站页面设计需要考虑到这些问题
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
JavaScript数据类型有哪些_如何准确判断一个变量的类型
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
昵图网官方站入口 昵图网素材图库官网入口
昵图网官网入口 昵图网素材平台官方入口
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环

