无符号整形
2015-08-02 14:56
253 查看
想用一个很有名的面试题来回答你的问题:
void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6) ? puts("> 6") : puts(" <= 6");
}
这个问题测试你是否懂得C语言中的整数自动转换原则,我发现有些开发者懂得极少这些东西。不管如何,这无符号整型问题的答案是输出是 ">6"。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式 计算出的结果大于6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。如果你答错了这个问题,你也就到了得不到这份工作的边缘。
void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6) ? puts("> 6") : puts(" <= 6");
}
这个问题测试你是否懂得C语言中的整数自动转换原则,我发现有些开发者懂得极少这些东西。不管如何,这无符号整型问题的答案是输出是 ">6"。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式 计算出的结果大于6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。如果你答错了这个问题,你也就到了得不到这份工作的边缘。
相关文章推荐
- bzoj2038: [2009国家集训队]小Z的袜子(hose)
- POJ 3641 素数打表+快速幂 简单题
- HDU 2045 不容易系列之(3)―― LELE的RPG难题(递推 or 动态规划)
- C语言:十进制到八进制转换(用栈实现)
- IoBuffer常用方法
- CSS背景图拉伸不变形
- spring配置文件详解
- JQuery(一)
- 存储过程分页(2)
- mysql之mysql安装、初始化,以及mysql相关命令的使用
- 暑假集训第三周周六赛 搜索 F - Oil Deposits 油块
- 字符串匹配算法KMP实现
- Ubuntu15.10 安装sublimetext并解决乱码问题
- [转载] sublime text 2 调试python时结果空白
- iOS 多线程技术1
- ARP协议的总结
- Codeforces 547 D. Mike and Fish
- 机房收费系统(三)——由row和rows引发的错误
- Objective-C学习笔记_实例变量可⻅度及方法
- Web Service学习-CXF与Spring整合为JavaEE应用发布WebService(三)