当前位置:网站首页>【数据存储】signed,unsigned到底怎么区分?如何计算?
【数据存储】signed,unsigned到底怎么区分?如何计算?
2022-08-09 22:56:00 【tt142】

本文主要讲解 1.整型和5.空类型,剩下的在后续系列会尽早更新,详情见主页
目录
1.空类型 void
void FUN( void );
void* p;共三种用法:
1.代码第一行 第一个void代表函数类型为空
即没有返回值,但是有时候我们会看到
void Fun(...)
{
...
return ;
}
此时的return作用和循环里的break十分类似,代表在那个地方停止递归,返回上一层
2.形参位置是void,对应第一个代码(void)
函数不需要参数
3.空指针
指针的类型是空
不是指所修饰的指针没有类型
而是类型可以任意,int char 都是可以的,就像一个垃圾桶,什么类型的垃圾无需分类就可以扔到void里面
2.整型
具体类型如本文开头的图片
char 也归入 是因为字符在内存中存储的都是ASCII码值,所以也算是整数
而所有的整型类型都是有具体细分的

首先我们观察到 char 和别的不一样——> char在不同的编译器可能是signed或者unsigned
VS是signed
关键问题来了 signed unsigned区别在哪
首先要知道补充知识
%d打印整型,%u打印无符号整型
unsigned原反补相同,没有符号位,32个比特位都是数值位
整型提升补位 补符号位,unsigned补0
1.*原反补的转换
图片来自作者之前的博客,感兴趣的可以进去多了解一些相关知识,加深印象,提高熟练度
计算机的CPU加法器只能运算加法,而且是对补码进行操作,减法也可以看做是加法
在各种类型的计算中,还需要2.*整形提升的知识
https://blog.csdn.net/weixin_71138261/article/details/126071887?spm=1001.2014.3001.5501
这个也是作者的博客
在
的部分详细讲解过

3.*大小端字节序存储
这个是一个很重要的知识
首先要明确
一个数字 比如十进制的 123
其中1——权重——>10^2 2——>权重——>10^1 3——>权重——>10^0
很清楚观察到,1代表数据的高位,3是低位
那么对于一个数据来说,比如16进制的0x11223344,
由于大小端字节序存储,所以这个整型的四个字节空间分别是 11 22 33 44
11代表这个数据的高位
44 是 低位

现在通俗理解清楚之后来看定义
小端字节序存储:把一个数据的低位字节内容 存放到低地址处,高位字节内容存放到高地址处
大端字节序存储:把一个数据的低位字节内容 存放到高地址处,高位字节内容存放到高地址处
关于内存的存储到底是怎么回事,为什么要有大小端存储,以及大小端存储的详细内容可以关注后期作者更新的文章
准备知识到此结束
来看一个例子
int main()
{
char a=-1;
signed char b=-1;
unsigned char c=-1;
printf("a=%d,b=%d,c=%d",a,b,c);
return 0;
}答案是多少呢

缩放严重!!!
但是没关系
重要的是下图

char 规定 01111111 + 1 = -128
强调:加法符号位要运算
学完本节内容之后,我们更要意识到 分析 的重要,不可以简单认为unsigned int a=-1就是简单去掉符号
创作不易,感谢观看![]()
边栏推荐
- 微信小程序获取微信用户步数
- 完全背包理论
- 【mysql】查询今天9点
- Technology feast!Huayun Data brings six topics to OpenInfra Days China
- 61.【快速排序法详解】
- Gartner's global integrated system market data tracking, hyperconverged market growth rate is the first
- 2022-08-09 mysql/stonedb-subquery performance improvement-introduction
- Golden Warehouse Database KingbaseGIS User Manual (6.4. Geometry Object Access Function)
- Gartner全球集成系统市场数据追踪,超融合市场增速第一
- Click: 518. Change Exchange II
猜你喜欢
随机推荐
68. qt quick-qml multi-level folding drop-down navigation menu supports dynamic add/unload, support qml/widget loading, etc.
防火墙之系统防护
61.【快速排序法详解】
ES6 从入门到精通 # 13:数组的扩展方法二
【集训DAY4】异或【字典树】
【诗歌】枕上诗书
直播间搭建,按钮左滑出现删除等操作按钮
多商户商城系统功能拆解25讲-平台端分销申请
Click: 518. Change Exchange II
Explore the TiDB Lightning source code to solve the found bugs
MVC与MVVM模式的区别
基于ABP的AppUser对象扩展
上交所实时行情文件汇总
探索TiDB Lightning源码来解决发现的bug
【JZOF】32从上往下打印二叉树
ES6 Beginner to Mastery #15: Generator Usage
【SSL集训DAY2】有趣的数【数位DP】
Golden Warehouse Database KingbaseGIS User Manual (6.6. Geometric Object Verification Function, 6.7. Spatial Reference System Function)
数据库优化 | 干货
深圳堡垒机厂家有哪些?重点推荐哪家?









