整型数据存储以及大小端字节序存储

2023-11-04

前言

在了解数据的存储之前,我们需要知道数据有哪几种类型。在C语言中数据分为一下几种类型:
1、整型
2、浮点型
3、构造类型
4、指针类型
5、空类型
这里我们只对整型做一个了解,其他的暂时不进行了解

整型

整型主要有以下几种类型:int 、short、long、char。
这时候就有个问题了,char不是字符型吗,为什么也算整型呢?这是因为字符在存储的时候是以ASCII码值存储的,ASCII码值又是整数,所以char也是整型。

int、short、long类型

int类型的所占字节是4字节,short类型所占字节是2字节,long类型所占字节是4~8字节(大于等于int类型)。int、short 和 long 都分为signed(有符号)和 unsigned (无符号)。当没有特别说明的时候int就等于signed int,short 就等于signed short int ,long 就等于 signed long int

chart类型

char类型所占字节是2字节,char类型也分为signed(有符号)和unsigned(无符号)。但是在C语言中没有明确规定char类型在没有特别说明的情况下是有符号还是无符号,这是取决于编译器的,但是大多数的编译器都是定为有符号的。

数据在内存中的存储

数据在内存中都是以二进制的形式存储的。而二进制又分为原码、反码、补码。在理解的时候我们需要充分理解数据的存储模式。

原码、反码、补码

  • 原码:直接将一个数按照正负数的形式翻译成二进制就可以了。

  • 反码:将原码的符号位不变,其他位按位取反就可以了。

  • 补码:将反码+1得到。

正负数在内存中的存储形式

在内存中数据都是以补码的形式存储的,这时候就回有个疑问,原码不是明显比其他的更加方便,为什么还要使用补码来存储呢?这是因为CPU的计算方法只有加法,这时候使用原码计算是错误的。
而对于正整数来说,原码 = 反码 = 补码,所以说对于正整数来说在内存中存储的其实就相当于其原码。但是对于负数来说存储的就是其补码了。

大小端字节序存储

  • 大端字节序存储:把一个数的低位字节处的数据存放在高地址处,把高位字节处的数据存放在低地址处。
  • 小端字节序存储:把一个数的地位字节处的数据存放在低地址处,把高位字节处的数据存放在高地址处。

拿一个十六进制数为例,0x11 22 33 44,这个数据在内存中的存储方式就可以有很多种了。可以是(从高地址到低地址 )11 22 33 44,也可以是44 33 22 11,甚至可以是22 33 11 44。但是像22 33 11 44 这种存储方式又过于麻烦,所以直接被淘汰了,就只剩下11 22 33 44 和 44 33 22 11这两种了。在我的理解看来,就是一个车位看你是车屁股朝里还是车头朝里。在VS2019 编译器中使用的是小端字节序存储。

查看编译器是大端字节序存储还是小端字节序存储的代码如下:

int main()
{
	int i = 0x33221144;
	printf("%c", i);   //如果打印出来是'3'则是大端字节序存储,若打印出来的是'D'则是小端字节序存储。
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

整型数据存储以及大小端字节序存储 的相关文章

随机推荐

  • 计算机拒绝访问移动硬盘,移动硬盘拒绝访问怎么办

    在有些时候我们的移动硬盘拒绝访问了 这该怎么办呢 那么下面就由学习啦小编来给你们说说移动硬盘拒绝访问的解决方法吧 希望可以帮到你们哦 移动硬盘拒绝访问的解决方法一 第一线不宜太长 要插在主机后面的USB插口 插上移动硬盘 2 桌面右键单击
  • iOS 打包出错, 编译出错,证书问题,上传AppStore

    1 ERROR ITMS 90046 90085 Invalid Code Signing Entitlements Your application bundle s signature contains code signing ent
  • 利用gitlab pages和hexo搭建一个个人博客

    AI boy原创 转载请注明出处 1 使用github pages存在的问题 目前网上有很多利用github pages和hexo搭建个人博客的教程 但是github目前拒绝了百度蜘蛛的爬取 因此如果希望自己的博客能够被百度收录 就需要采用
  • 前端开发中的 json 和 xml 还有JavaScript的异步加载

    1 xml XML文档中的数据采用元素像 HTML 的段落一样展现
  • 基于Golang和WebSocket打造自已的反向代理

    当我们在开发的时候 有时想要把自已开发的接口暴露给其他开发者或者第三方的服务 方便我们调试和排查问题 那就需要某种机制把我们本地的服务接口暴露到互联网上 本文将要介绍如何通过Golang和WebSocket来实现这一功能 为什么我们需要开发
  • 1032 挖掘机技术哪家强python3无超时

    改进后的代码成功率在90 文章目录 1 最初代码 2 改进代码 1 最初代码 usr bin env python coding utf 8 File 1032 py Time 2020 04 08 17 02 03 Author Schi
  • nginx 之 pcre 安装

    1 下载pcre wget https nchc dl sourceforge net project pcre pcre 8 43 pcre 8 43 tar gz 2 解压 3 进入解压目录 4 执行如下命令 configure ena
  • 【pytorch】pytorch使用记录(持续更新)

    1 找不到moule xxx 当训练模型在重新加载用于评估的时候出现少了一个module前缀 这个问题通常是由于训练的时候采用了数据并行操作 而评估模型的时候却没有用到 因此 只需要在训练代码中补充 net nn DataParallel
  • 深入理解Java中的字符串驻留机制

    引言 在Java编程中 字符串是最常用的数据类型之一 而Java的字符串驻留 intern 机制则是字符串处理中一个重要且经常被忽视的话题 本文将带您深入探讨Java中字符串驻留机制的原理和影响因素 什么是字符串驻留机制 字符串驻留机制是指
  • VAF Variance Accounted For(方差贡献率)

    VAF是指方差贡献率 是一种用于衡量 评估 模型预测能力的指标 即模型的预测结果与实际结果的相关程度 VAF越高 说明模型对实际数据的解释能力越好 模型预测结果越接近实际结果 计算公式 V A F 1
  • 禅道api调用(爬虫方式)

    目录 获取所有进行中的项目信息 url postman Java代码 实体类 逻辑处理 根据项目id获取指定项目下所有未关闭的任务id url postman Java代码 总结 在Java中 我们可以使用各种库和框架来创建自己的爬虫程序
  • 百度你不知道的技巧使用

    百度搜索引擎 技巧使用 例如 python 屏蔽广告 python 能够减小搜索范围 pythonfiletype pdf 搜索文件 intailpython 进行精准匹配 pythoninurl video 匹配带视频的关键词
  • 解决 ResourceWarning: unclosed <socket.socket fd=628, family=AddressFamily 警告问题 unittest ddt data 数据驱动

    文章目录 1 问题 2 办法 1 问题 ResourceWarning unclosed
  • unity常用生命周期函数以及执行顺序详解

    执行顺序 Awake gt OnEnable gt Start gt FixedUpdate gt Update gt LateUpdate gt OnGUI gt OnDisable gt OnDestroy gt OnApplicati
  • 大数据:推荐系统

    大数据 推荐系统 下面是我看 大数据 互联网大规模数据挖掘与分布式处理 一书第九章的总结 1 效用矩阵 推荐系统处理对象是用户和项 该矩阵提供某个用户对某个项的喜好程度 通常而言 大部分元素未知 推荐系统是基于已知项对未知元素进行预测 2
  • nginx+tomcat+redis实现session共享,搭建单机集群

    环境描述 以下环境是我亲测有效的搭建环境 redis 下载地址 https download csdn net download qq 37535558 12527340 tomcat8 5 20和redis的工具jar包下载地址 http
  • 升级glibc2.27

    将安装包上传至 home目录 1 解压 tar zxvf glibc 2 27 tar gz cd glibc 2 27 mkdir glibc227 cd glibc227 2 编译安装 export LD LIBRARY PATH us
  • 英文演讲Presentation有用的语句

    文章内容仅用于自己知识学习和分享 如有侵权 还请联系并删除 1 Beginning Greeting Hello Good morning afternoon evening Hello friends everyone Good even
  • Unity基础 场景概念以及场景切换

    Unity场景的概念 在Unity中 场景可以理解为一种游戏关卡 它是一个包含了游戏中各种元素的环境 如游戏物体 光照 相机 音频等等 每个场景都可以通过Unity提供的一系列方法和变量进行操作和管理 在Unity中 场景有以下特点 可以包
  • 整型数据存储以及大小端字节序存储

    文章目录 前言 整型 int short long类型 chart类型 数据在内存中的存储 原码 反码 补码 正负数在内存中的存储形式 大小端字节序存储 前言 在了解数据的存储之前 我们需要知道数据有哪几种类型 在C语言中数据分为一下几种类