变量在计算机内存储的到底是什么?

来源:互联网 发布:淘宝客导购位线下推广 编辑:程序博客网 时间:2024/05/01 21:01

变量在计算机内存储的到底是什么?是以什么样的形式存储在内存中的?

一直以来我都有一个疑问,char b[2] = {-10,10};

         b[0],b[1]在内存中存放的数据是什么样的?我知道计算机内部只认识二进制,最高位为符号位,代表:正负;

那么我很容易猜想很可能会是如下存储方式的:

         -10:10001010 10: 00001010;

 

         但是真的会是这样吗?(活了20多年了,让我明白一点:生活往往不会如我想想的那样的,于是我乎,我要来验证他)

程序1:

         通过vs2010,在Debug下打开内存窗口,调试程序(1)发现真正存储在内存的数据是

(f6,0a)这是16进制,转成二进制(11110110 , 0000 1010);我发现10的存储数据我猜对了,但是-10的却错了!

认真想想,这是怎么回事?…..

….

记得以前在《数字逻辑》里学过”原码”,”反码” , “补码”;(其实我们的猜想就是原码)

然后再看看1111 0110-----这不正是-10的补码吗?

难道计算机是以补码的形式存储数据的?

多试几个数据,我靠,我发现真的是这样子的;计算机内部存储的是数据的补码!

那为什么,要使用补码呢?为什么不用”原码”,原码对于我们人来说,不是更好理解吗!

计算机为什么使用补码来存储数据:http://blog.csdn.net/jiese1990/article/details/8209178