博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
有符号整数与无符号整数相加问题
阅读量:4226 次
发布时间:2019-05-26

本文共 661 字,大约阅读时间需要 2 分钟。

#include
int main( ){ unsigned int a = 6; int b = -20; (a + b > 6) ? printf(">6") : printf("<=6"); return 0;}

整形(int)和无符号整形相加时,int先转化为unsigned int,b在内存中以-20的二进制补码形式存储。

执行a+b时,b要以unsigned int的形式读取内存中的数据,即将-20的补码按照unsigned int的形式理解读取(4,294,967,276)

也即:b = -20;先转化为 -20 + 2^32 = 4,294,967,276(unsinged int);此时与 a = 6相加必然大于 6

无符号数与有符号数做加法运算,先将有符号数转化为无符号数,然后做运算

一道经典小题:
输出为:1、0、2
little endian指低位字节排放在内存的低地址端(就是起始地址)
long long 占8个字节,假设起始地址是0,一个地址存一个字节,按照地位编址1,2会按照如下方式存储
地址 0 1 2 3 4 5 6 7 8 ...
内容 1 0 0 0 0 0 0 0 2 ...
%d只能按照四字节连续输出
那么第一个输出的便是0001=1 第二个输出0000=0 第三个输出0002 

经典题3:
如果 x、y、z指向同一地址:8
只有两个相同的情况:x与y(5),x与z(5),y与z(6)
指向地址均不相同:4

你可能感兴趣的文章
13张动图助你彻底看懂马尔科夫链、PCA和条件概率!
查看>>
关于TensorFlow,你应该了解这9件事(附代码&链接)
查看>>
独家 | 一文读懂PySpark数据框(附实例)
查看>>
清华“法律数据科研平台”向校内师生开放试运行
查看>>
终结谷歌AutoML的真正杀手!Saleforce开源TransmogrifAI
查看>>
六个维度、数万条数据帮你揭穿房租大涨的背后(附代码)
查看>>
干货 | 只有100个标记数据,如何精确分类400万用户评论?
查看>>
独家 | 全解用Python建立能源市场算法交易的机器学习框架(附链接)
查看>>
重磅 | 2018年清华大学研究生新生大数据
查看>>
独家 | 初学者的问题:在神经网络中应使用多少隐藏层/神经元?(附实例)
查看>>
资源 | 机器学习必知的15大框架,欢迎补充!
查看>>
基于问题导向与成果产出的教学模式:《大数据与城市规划》特色课程
查看>>
Python 爬取北京二手房数据,分析北漂族买得起房吗?(附完整源码)
查看>>
清华大学AMiner团队发布《超级计算机研究报告》(附下载)
查看>>
第一届全国计算社会科学高端论坛在清华大学举行
查看>>
“还完花呗,再也不用吃土!”是真的吗?(附代码)
查看>>
玩转数据、拥抱智能 | 清华大学大数据能力提升项目宣讲会火热来袭
查看>>
收藏 | 应对程序员面试,你必须知道的8大数据结构
查看>>
避坑指南:数据科学家新手常犯的13个错误(附工具、学习资源链接)
查看>>
智慧城市新探索:摩拜&京东联合利用智能单车数据检测违章停车
查看>>