(unsigned)short溢出后隐式转换为int
2024-09-08 18:54:37
同学被面试官问到一个细节中的细节,虽然个人觉得意义不大,但还是好奇并在和同学一起实验后搞清楚了,记录一下
如下:
int main() {
unsigned short a = 65535, b = 10;
for (int i = 0; i < a + b; i ++ )
cout << "hello world!" << endl;
return 0;
}
问:现象
不卖关子:现象是打印了65545行"hello world!"。起初十分费解,a和b都是short,返回值应该也是short吧,怎么会大于65535?!
一通探究后,发现了这些:
#include <iostream>
int main() {
short a = 32767, b = 10;
auto c = a + b;
std::cout << c << std::endl; // 32777
unsigned short d = 65535, e = 10;
auto f = d + e;
std::cout << f << std::endl; // 65545
int g = 2147483647;
auto h = g + 1;
std::cout << h << std::endl; // -2147483648: 10000000 00000000 00000000 00000000
unsigned int i = 4294967295;
auto j = i + 1;
std::cout << j << std::endl; // 0
return 0;
}
总结一下就是
short
和unsigned short
会在溢出后自动的隐式类型转换为int
,
而int
和unsigned int
并不会自动转换为long long
只能说这太细了,工作中遇到了再实验不也是简简单单?没实验过的人能掌握这么细吗?拿这个来作为考察内容之一合适吗?就别提海那边不问八股文的笔试、面试风格了。
最新文章
- ionic环境搭建及新建项目中的各种问题
- 总结一下响应式设计的核心CSS技术Media(媒体查询器)的用法。(转)
- python画图—黑板客老师课程学习
- 【Apache运维基础(5)】Apache的Rewrite攻略(2)
- codis集群和redis cluster的优劣对比
- Sass变量、嵌套
- kaggle之数字序列预测
- 通过YAJL生成json语句
- JAVA_SE基础——70.Math类
- golang:使用timingwheel进行大量ticker的优化
- OpenProject基础使用介绍
- LNMP组合环境
- HTML(八)HTML meta标签&;base标签
- 吴恩达机器学习笔记40-用调和平均数F来进行查准率和查全率之间的权衡(Trading Off Precision and Recall by F sore)
- 关于工具类中@Autowired注入为NULL的问题记录
- BZOJ3230 相似子串 字符串 SA ST表
- 《剑指offer》-二叉搜索树与双向链表
- ubuntu18+gtx1060 +cuda9+cudnn-v7+opencv3.1.0 配置深度学习环境
- oj错误之char型超出范围
- HDU 1247 Hat’s Words (字典树 &;amp;&;amp; map)
热门文章
- CGI、WSGI、uWSGI、ASGI……
- Java-递归查询法
- Vue DevUI v1.4 版本发布:从体验、效率、质量三个方面做了全方位的优化&#127881;
- Windows上将linux目录映射网络驱动器
- 12、HSSFWorkbook实现多张sheet导出
- [机器学习] PCA (主成分分析)详解
- 聚合查询、分组查询、ORM中如何给表再次添加新的字段、F与Q查询、ORM查询优化、ORM事务操作、ORM常用字段类型、ORM常用字段参数、Ajax、数据编码格式(Content-Type)、ajax携带文件数据
- SpringMVC学习笔记 - 第二章 - SSM整合案例 - 技术整合、统一结果封装、统一异常处理、前后联调、拦截器
- drf-day1——web应用模式、API接口、接口测试工具postman
- 10月28日内容总结——ATM项目开发流程