当前位置: 首页 > news >正文

c语言进阶 数据的存储(上)

数据的存储(上)

  • 一. 数据类型详细介绍
    • 1. 整型家族
    • 2. 浮点数家族
    • 3. 构造类型
    • 4. 指针类型
    • 5. 空类型
  • 二. 原码 反码 补码
  • 三. 大小端字节序介绍及判断

一. 数据类型详细介绍

我们前面已经学习了基本的内置类型
char 字符数据类型
short 短整型
int 整型
long 长整型
long long 更长的整型
float 单精度浮点型
double 双精度浮点形

类型有什么意义呢?
1 使用这个类型开辟内存空间的大小
比如说 int 4个字节 short 两个字节 char 一个字节

2 如何看待内存空间的视角
这个本文后面会提及

1. 整型家族

char类型
包括 unsigned char signed char
short类型
包括unsigned short signed short
int类型
包括unsigned int signed int
long类型
包括unsigned long signed long

2. 浮点数家族

float
double

3. 构造类型

包括

数组类型
结构体类型struct
枚举类型enum
联合类型union

4. 指针类型

int* p
char *p
float *p
等等

5. 空类型

void表示空类型(无类型)

通常应用于函数的返回类型 函数的参数 指针类型

二. 原码 反码 补码

计算机中有整数的三种2进制表示方式 即原码 反码 补码

整数的原码 反码 补码都相同

负数的三种表示方式各不相同

原码
直接将数值按照正负数的形式翻译成二进制就可以得到原码

反码
原码的符号位不变 其他位按位取反

补码
反码加一得到补码

例如
1的原码 反码 补码都是
0000 0000 0000 0000 0000 0000 0000 0001

-1的原码是
1000 0000 0000 0000 0000 0000 0000 0001
反码是
1111 1111 1111 1111 1111 1111 1111 1110
补码是
1111 1111 1111 1111 1111 1111 1111 1111

对于整型数据俩说 计算机中存放的是补码

这样的好处有两个
1 可以将符号位和数值域统一处理
2 cpu只能做加法处理
(大家可以尝试一下1和-1的原码 还有补码相加 运算完就会明白这样设计的精妙之处)
3 原码和反码相互转换 运算过程是相同的
(原码取反加一得到补码 同样的补码取反加一得到原码)

三. 大小端字节序介绍及判断

关于大小端的介绍大家可以看我的这一篇文章

大端法和小端法

关于如何判断大小端呢 这里提供一个思路

在这里插入图片描述

于是 我们可以这样设计一个函数

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int jg_sys(void)
{
	int a = 1;
	char* p = &a;
	if (*p==1)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}



int main()
{
	if (jg_sys)
	{
		printf("小端法");
	}
	else
	{
		printf("大端法");
	}
	return 0;
}

这样子就可以判断我们机器使用的是大端法还是小端法啦

在这里插入图片描述

以上就是本篇博客的全部内容啦 由于博主才疏学浅 所以难免会出现纰漏 希望大佬们看到错误之后能够

不吝赐教 在评论区或者私信指正 博主一定及时修正

那么大家下期再见咯

相关文章:

  • A8.2022年全国数学建模竞赛 B题-赛题分析与讨论
  • Vue指令总结
  • 离开二线城市石家庄(勉强算二线吧)去北漂,入职外包测试岗一个月想辞职了~
  • 瑞康医药与亚马逊云科技达成战略合作,全国上百家子公司业务上云
  • 内存取证工具Volatility学习
  • MySQL 中的排序在底层是怎样实现的呢?
  • HID 异步访问和同步访问
  • 吊打面试官系列之:我这样回答 “如何更高效的进行接口测试“,面试官果然跪了。
  • 云资源管理
  • 【机器学习】树模型预剪枝和后剪枝
  • 性能提升 25 倍:Rust 有望取代 C 和 C++,成为机器学习首选 Python 后端
  • python一些操作的笔记
  • 4、乐趣国学—“行有不得,反求诸己。”
  • Github每日精选(第42期):web前端自定义Alert窗口sweetalert
  • “大厂”角力移动办公系统市场,钉钉和企微向左、WorkPlus向右
  • @angular/forms 源码解析之双向绑定
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • CAP 一致性协议及应用解析
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • CSS实用技巧
  • java小心机(3)| 浅析finalize()
  • JS数组方法汇总
  • leetcode98. Validate Binary Search Tree
  • miaov-React 最佳入门
  • mysql innodb 索引使用指南
  • mysql中InnoDB引擎中页的概念
  • SQLServer之创建显式事务
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • yii2中session跨域名的问题
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 分享几个不错的工具
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 理清楚Vue的结构
  • 聊聊flink的TableFactory
  • 前嗅ForeSpider中数据浏览界面介绍
  • 如何编写一个可升级的智能合约
  • 深度解析利用ES6进行Promise封装总结
  • 我与Jetbrains的这些年
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • PostgreSQL之连接数修改
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #### go map 底层结构 ####
  • #pragma pack(1)
  • $.ajax()
  • (26)4.7 字符函数和字符串函数
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)平衡树