建站之星和凡科,网站开发去哪里找程序员,中文博客网站模板下载,重庆国外网站推广前言#xff1a;
期末临近#xff0c;继续复习#xff01;
今天要复习的内容是数据在内存中的存储#xff0c;主要是整型与浮点两种#xff0c;还有大小端的介绍。
提出问题 打印结果是255 -1
为什么#xff1f;
首先我们要知道数据都是以二进制的形式存…前言
期末临近继续复习
今天要复习的内容是数据在内存中的存储主要是整型与浮点两种还有大小端的介绍。
提出问题 打印结果是255 -1
为什么
首先我们要知道数据都是以二进制的形式存储于计算机中的而不同的类型在不同平台下占用的空间大小也不一样具体可看下图 数据来源http://t.csdnimg.cn/2gnJv
在此基础上我们还要知道整数默认是4个字节小数是8个字节
整数在内存中以补码形式存在
-1:11111111 11111111 11111111 11111111
把-1赋值给char类型的a会发生截断之后后八位被存进去了
a11111111
同理b11111111
在打印的时候是以%d打印的因此ab要发生整形提升a作为无符号数提升后为00000000 00000000 00000000 11111111
b作为有符号数变为11111111 11111111 11111111 11111111
这些都是补码被读取后一个数255一个是-1
在此基础上我们对char进一步分析他可以存的数有以下这些 对于有符号char来说他的范围是-128到127
对于无符号char来说它的范围是0到255都是存了256个不同的数而且当你存的数字超过他的范围时就会开始循环了如下图所示 举个例子对于无符号数255他的补码是11111111
那么你存一个无符号256此时存进去的就是00000000每次循环就是256个数具体顺序就是上图。