这篇文章主要为大家展示了“C语言中数据类型有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言中数据类型有哪些”这篇文章吧。数据的存储首先就要说到数据的类型,类型决定了看待内存空间的视角。C语言的数据类型分为内置类型和外置类型char
(字符型)、short
(短整型)、int
(整型)、long
(长整型)(signed
或者 unsigned
)float
(单精度浮点型)、double
(双精度浮点型)(1)数组类型此处需要注意的是,去掉数组名就是数组的类型比如int arr[10],去掉数组名arr,int [10]就是数组数据类型(2)结构体类型(struct
)(3)枚举类型(enum
)(4)联合类型(union
)数据的存储形式就是以计算机的原码反码补码进行存储的浮点型:不以原反补的形式进行存储其他的数字又分为有符号数和无符号数无符号数:无符号数的原反补三种码是一致的,存储的时候没有区别符号数来:正数的原反补码是相同的,但是负数的原反补码需要经过运算转化(正数的最高位是0,负数的最高位是1)原码:将二进制按照正负数形式翻译为二进制数字反码:将原码的每一位取反补码:反码+1存储的时候一般存储数字的二进制序列补码同时数据的存储存在大小端内存空间具有编号,编号小的为低地址,编号大的为高地址大端存储:数据的低位保存在内存的高地址中小端存储:数据的低位保存在内存的低地址中每个机器的存储方式不同,可以用如下一段简单代码来观察电脑是哪一种存储方式char/signed char 所对应的存储区间为-128~127,同时规定10000000为-128。为了理解signed与unsigned,适用如下例题signed
与unsigned
的区别就在于能否表示正负数在数据的存储时,是否存在符号位signed char与char类型的存储也可以用一个图来说明中间的分界线即为正负分界线,第一位即为符号位。符号位为1是负数,符号位为0即为正数理解char的存储范围,借用如下例题运行结果:255int等类型的存储方式与char相似,这里就不在多做赘述利用一个例子来证明浮点型存储与整型存储不同输出结果:n的值为:9
*pfloat的值为:0.000000
n的值为:1091567616
*pfloat的值为:9.000000由此可见,单精度浮点型的指针并不能成功取出原本存储在整形中的数字,而第二步中通过单精度浮点型的指针所更改的整形的值,n也无法成功取用,所打出来的数字并不是9。由此可见二者的存储方式是存在较大差异的,所以下面对浮点型的存储方式进行讲解。浮点型并不依靠数据的原反补码进行存储浮点型有其特殊的规定(E也可以理解为最高此项所对应的阶次)用实例来证明一下比如8.5这个浮点数转化为二进制1000.1对于这个数而言,存储成图中形式就是(-1)^0*1.0001*2^3存储就是0 00000011 00000000000000000010001此时假设我们所申免费云主机域名请到的内存是一个条状,那么对于浮点数而言的数据存储方式如图所示单精度浮点型对应的就是图一中所示,SME分布在不同的位置,图二的所示为双精度浮点型,双精度与单精度浮点型所对应的E与M不同。就是E的值,既不能全为0,也不能全为1,且E的存储值与真实值不相同为了表示极小的小数,比如1*10^-10,因为E本身不具有符号位,所以不能表示负数单精度:E=真实值+127双精度:E=真实值+1023加完之后再转化为二进制存储为E,拿出来使用的时候再将这个数字减去特殊情况1:E为全0单精度的E此时的真实值为-127,该浮点数几乎等于0,是一个几乎不存在的数字特殊情况2:E为全1单精度的E此时的真实值为128,该浮点数是为正负无穷大的数字对于M来说,M的值既然是在区间【1,2)之间,则位于整数部分的肯定为1再次利用单精度浮点型存储8.5该数字的M为1.0001为了能让浮点数表达更大的数字,且M中处于个位的数字固定为1,之后就规定,M中个位的1可以不再进行存储,等到取用的时候再进行添加。以上是“C语言中数据类型有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注百云主机行业资讯频道!
这篇文章主要为大家展示了“css3如何制作网站后台管理面板”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css3如何制作网站后台管理面板”这篇文章吧。HTML结构代码如下:Theme Twenty Eleven w…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。