当前位置:网站首页>【数据存储】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就是简单去掉符号
创作不易,感谢观看![]()
边栏推荐
- redis distributed lock code example
- Force buckle: 279. Perfect square
- 70. 爬楼梯进阶版
- Redis-基本介绍/linux下环境配置/配置文件
- AirFlow介绍
- 【云原生】一文讲透Kubevela addon如何添加腾讯Crane
- YOLOV5 study notes (7) - training your own data set
- Distributed database problem (3): data consistency
- Gumbel distribution of discrete choice model
- 68. qt quick-qml multi-level folding drop-down navigation menu supports dynamic add/unload, support qml/widget loading, etc.
猜你喜欢

Jpa 查询view or 无主键的table

YOLOV5 study notes (7) - training your own data set

ECCV 2022 | 微软开源TinyViT :搞定小模型的预训练能力

A summary of 6 common tools for cross-border e-commerce

多商户商城系统功能拆解25讲-平台端分销申请

【SSL集训DAY2】Sort【树状数组】

61.【快速排序法详解】

【集训DAY4】异或【字典树】

巴比特 | 元宇宙每日必读:国内首个数字人产业专项支持政策发布,2025年北京数字人产业规模将破500亿元...

Golden Warehouse Database KingbaseGIS User Manual (6.5. Geometry Object Editing Function)
随机推荐
深入理解多线程(第一篇)
JSON对象和字符串相互转化
2022-08-09 mysql/stonedb-subquery performance improvement-introduction
AppUser object extension based on ABP
Gumbel distribution of discrete choice model
【哲理】事教人
【JZOF】32从上往下打印二叉树
【哲理】读书的意义
【SSL集训DAY2】有趣的数【数位DP】
【诗歌】爱你就像爱生命
ECCV 2022 | 微软开源TinyViT :搞定小模型的预训练能力
[JZOF] 82 binary tree with a path of a certain value (1)
Gartner全球集成系统市场数据追踪,超融合市场增速第一
781. 森林中的兔子
阿里云短信服务开通
[Cloud native] Kubernetes orchestration tools
KingbaseGIS Jin Cang database using manual (6.3. Geometric object creation function)
conda新建环境时报错NotWritableError: The current user does not have write permissions
Digital wallets, red sea ecological rapid introduction of small programs can help capture device entry wisdom
源码编译安装LAMP和LNMP