欢迎光临散文网 会员登陆 & 注册

C语言 | 关于数据在计算机的存储形式

2022-09-24 11:16 作者:信盈达  | 我要投稿

接上篇:详解C语言中,关于0的不同含义

上次我们说到0经过位运算符~,按位取反之后,得到的结果是-1。以下呢就给大家具体的讲解数据在计算机的存储形式。

数据在计算机中都是以二进制的形式进行存储的。

例如:十进制数320转换成二进制数:

320 = 1*2^8+1*2^6 = 0000 0001 0100 0000

(第一个问题:)

那么我们就会遇到在数据存储中的第一个问题,负数怎么表示呢?

在基本数据类型中,我们又将数据分为有符号型无符号型。无符号型很好理解,也就是可以直接表示正整数,并且只能存储正整数。有符号型的数据,将最高位设为符号位,当最高位是0的时候,表示存储的是一个正数,最高位1的时候,表示存储的就是一个负数。

例如:一个八位的长度的数据

0000 0001 = +1;

1000 0001 = -1;

现在知道了数据的表示方式,我们再来看看数据的运算。在计算机中,没有减法运算,那么1-1对于计算机而言就是1+(-1)。我们来看一下根据计算机的存储方式,来进行运算:

0000 0001 + 1000 0001 = 1000 0010 = -2;

我们可以看到1-1经过刚刚的计算之后得到了-2的结果,难道是我们平常的认知出现问题啦?

当然不是,而是在计算机中数据虽然是以二进制的形式进行存储,但数据并不是以原码的形式进行存储的,而是以补码的形式存在于内存中。


 更多知识点我们下次继续,未完待续......

C语言 | 关于数据在计算机的存储形式的评论 (共 条)

分享到微博请遵守国家法律