栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c语言数据的存储篇

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言数据的存储篇


 

文章目录
  • 一:数据类型
    • 1.1整形家族:
    • 1.2构造类型:
    • 1.3指针类型:
    • 1.4空类型:
  • 二:数据的原码反码补码
    • 2.1大端字节存储
    • 2.2小端字节存储
    • 2.3大小端字节存储的意义
    • 2.4判断大端小端
  • 三:无符号数和有符号数

 

一:数据类型


类型的意义:决定了这个数据的使用范围。

1.1整形家族:

1.2构造类型:

1.3指针类型:

1.4空类型:

二:数据的原码反码补码


为什么如此?是因为计算机中只有加法器,比如在做相减的时候,1-1需要变为1+(-1),这也就用到了补码。

这段代码为何如此?按照常理20转化为十六进制是0x00 00 00 14,而在内存中却是倒过来存储。这便涉及到了计算机中的大端字节存储和小端字节存储。

2.1大端字节存储


请一定要注意这里是字节存储。对于16进制的20,我们转换如图所示

通俗来讲,就是从左到右存储16进制的(2个16进制对应8个二进制=1个字节)

2.2小端字节存储

2.3大小端字节存储的意义


2.4判断大端小端


这里用强制类型转换,读取1个字节,如果返回值为1,则为小端,如果返回值为0,则为大端。

三:无符号数和有符号数



1:第一步写出-1的原码反码补码
10000000 00000000 00000000 00000001 原码
111111111 111111111 111111111 111111110 取反(符号位不变)
111111111 111111111 111111111 111111111 补码

因为a是char类型,截断8个bit位
11111111
此时发生整形提升(最高位为符号位,补符号位,到32位)
11111111 11111111 11111111 11111111 补码
显然是-1

2:因为第一个char类型就是signed ,有符号数,所以b打印也是-1 3:打印无符号整形 -1截断8位后是11111111 整形提升的时候默认最高位不是符号位, 所以整形提升变成 00000000 00000000 00000000 11111111 也就是这是个无符号数,原码反码补码一样,所以直接计算得出来是255,因此char类型的-1的无符号整数就是255。

本人博客链接

感谢各位的浏览,谢谢!希望能帮助您更好的了解c语言中,数据存储的相关知识点

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928027.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号