当前位置:网站首页>【数据存储】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就是简单去掉符号
创作不易,感谢观看
边栏推荐
- 下载markdown软件Obsidian(解决官网下载速度慢)
- mysql无法远程连接 Can‘t connect to MySQL server on ‘xxx.xxx.xxx.xxx‘ (10060 “Unknown error“)
- Technology feast!Huayun Data brings six topics to OpenInfra Days China
- Travel with Shengteng: See all the AI attractions in Jinling City in one day
- KingbaseGIS Jin Cang database using manual (6.3. Geometric object creation function)
- 探索TiDB Lightning源码来解决发现的bug
- 上交所实时行情文件汇总
- 【诗歌】爱你就像爱生命
- ES6 Beginner to Mastery #13: Extension Methods for Arrays 2
- 【JZOF】82二叉树中和为某一值的路径(一)
猜你喜欢
上交所实时行情文件汇总
FreeRTOS任务基础
巴比特 | 元宇宙每日必读:国内首个数字人产业专项支持政策发布,2025年北京数字人产业规模将破500亿元...
服务发现@EnableDiscoveryClient
探索TiDB Lightning源码来解决发现的bug
了解什么是架构基本概念和架构本质
In-depth understanding of multithreading (Part 1)
Redis-基本介绍/linux下环境配置/配置文件
【云原生】Kubernetes编排工具精讲
Wireshark classic practice and interview 13-point summary
随机推荐
Sqlserver限制账户在哪些ip下才可以访问数据库
Distributed database problem (3): data consistency
技术盛宴!华云数据携六大议题亮相OpenInfra Days China
Service Discovery @EnableDiscoveryClient
【JZOF】32从上往下打印二叉树
selenium和驱动安装
70. Stair Climbing Advanced Edition
LiveData : Transformations.map and Transformations.switchMap usage
Alibaba Cloud SMS Service Activation
Redis-基本介绍/linux下环境配置/配置文件
巴比特 | 元宇宙每日必读:国内首个数字人产业专项支持政策发布,2025年北京数字人产业规模将破500亿元...
Sqlserver restricts the ip under which accounts can access the database
【集训DAY3】阶乘【数学】
Golden Warehouse Database KingbaseGIS User Manual (6.6. Geometric Object Verification Function, 6.7. Spatial Reference System Function)
新开窗口 展示协议
上交所实时行情文件汇总
【集训DAY5】快速排序【模拟】【数学】
ES6 Beginner to Mastery #13: Extension Methods for Arrays 2
ES6 从入门到精通 # 15:生成器 Generator 的用法
AppUser object extension based on ABP