【手把手教会数据类型的存储】

news2024/11/16 7:19:13

数据类型介绍

  1. 整型在内存中的存储:原码、反码、补码

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

  1. 浮点型在内存中的存储解析


1.数据类型介绍

我们已经学习过了基本的数据类型:

整型:

  • shor —— 短整型

  • int —— 整型

  • long —— 长整型

  • long long —— 更长的整型

浮点型:

  • float —— 单精度浮点型

  • double —— 双精度浮点型

字符型:

  • char —— 字符型


我们可以思考,以上的类型还能细分吗?


答案是可以的


1.1

有符号型:

无论是整型还是字符型还可以分为:有符号型与无符号型

有符号型通常会在前面+signed,而对于整型和浮点型来说

再前面+signed与单纯short、int....是一样的,因此我们在书写类型是经常会省略signed.

而对于字符型——char来说,大部分情况下signed与单纯char的意义也相同

char是否与signed char意义相同取决于编译器


无符号型:

unsigned+类型——表示无符号型

无符号型通俗的来说就是没有正负之分的数

列如:月份

年龄


构造类型


指针类型


空类型


2.整型在内存中的存储

我们创建的变量,实际上是会在内存中开辟一个空间进行存储的,而空间的大小是由类型决定的.


2.1 原码、反码、补码

在计算机中,整型变量是以二进制的形式存储在内存中的,

则有三种方法表示二进制,分别为原码、反码、补码

原码、反码、补码都由以下两部分组成:

  • 符号位 —— 符号位都是用0表示“正”,用1表示“负”

  • 数值位 —— 数值位则要分情况

正数时的原、反、补码都相同

负数时原、反、补表示方法各不相同:

对于整型来说,数据存放内存中的其实是存放的补码

请看下图:

能有效减轻CPU负荷


该图为整型数据在内存中存储的地址,在内存中,计算机会将二进制转

换为十六进制作为地址,为什么呢?因为十六进制的地址能给人更清晰地

观感,整型为4个字节,32个比特位,十六进制时,四个比特位则为一个字节

从图上可以看到,每一行都有8个数值

但貌似图中的存放顺序有点不对劲!


2.2 大小端介绍

通过下图理解:


3.浮点型在内存中的存储

浮点型的数据存储与整型相同吗?


我们看看以下代码:

#include<stdio.h>
int main()
{
    int n = 9;
    float* pFloat = (float*)&n;
    printf("n的值为:%d\n", n);
    printf("*pFloat的值为:%f\n", *pFloat);

    *pFloat = 9.0;
    printf("num的值为:%d\n", n);
    printf("*pFloat的值为:%f\n", *pFloat);
    return 0;
}

输出的结果为:

通过该例子,我们发现浮点型的数据存储似乎与整型的不一样


这就是我对数据类型存储的理解,谢谢观看!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/382175.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习 | 线性回归(单变量)

前文回顾&#xff1a;机器学习概述&#x1f4da;线性回归概念我们要使用一个数据集&#xff0c;数据集包含俄勒冈州波特兰市的住房价格。在这里&#xff0c;我要根据不同房屋尺寸所售出的价格&#xff0c;画出我的数据集。比方说&#xff0c;如果你朋友的房子是 1250 平方尺大小…

数据仓库之建模理论以及仓库设计思想

1、数据仓库 1.1、数据仓库概述 数据仓库是一个为数据分析而设计的企业级数据管理系统。数据仓库可集中、整合多个信息源的大量数据&#xff0c;借助数据仓库的分析能力&#xff0c;企业可从数据中获得宝贵的信息进而改进决策。同时&#xff0c;随着时间的推移&#xff0c;数…

【计算机组成原理】1、浮点数的二进制表示、科学计数法、IEEE754标准

文章目录什么是浮点数浮点数表示数字浮点数的二进制表示浮点数的「IEEE754标准」二进制表示背景特殊约定示例浮点数为什么有精度损失浮点数的范围和精度有多大参考资料用定点数表示数字时&#xff0c;会约定小数点的位置固定不变&#xff0c;整数部分和小数部分分别转换为二进制…

中原银行使用 XSKY星辰天合对象一体机解决核心系统备份管理问题

中原银行使用星辰天合 X3000 对象存储一体机在生产中心和灾备中心分别搭建分布式存储集群&#xff0c;通过 S3 协议与 NBU 备份平台对接&#xff0c;提供海量存储服务&#xff0c;实现备份平台架构转型。 近年来&#xff0c;金融机构随着业务规模及数据量的持续增长&#xff0c…

JavaSE19-常见类

文章目录一、Object1.概述2.常用方法二、String1.概述2.对象创建2.1 直接使用字面值2.2 使用构造方法3.常用方法三、包装类1.概述2.创建对象2.1 直接使用字面值2.2 使用构造方法2.3 使用静态方法valueOf3.常用方法4.自动装箱与自动拆箱4.1 自动装箱4.2 自动拆箱4.3 原理四、Str…

各类特殊开关电源问题解决方案

一、提高DCDC芯片电流 使用大功率三极管代替芯片内部开关管提高过流能力 二、BUCK电路实现负电压 将buck的地作为-Vout输出&#xff0c;原输出接地。 注&#xff1a;不要用LM2596跟LM2576 三、FLY-BUCK电路 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20808c03b126…

成功解决xshell7会话窗口只能显示一个的问题

文章目录前言一. 问题复现二. 问题解决方法一方法二三. 拓展3.1 自定义快捷键3.2 将当前shell中的代码内容复制到记事本中3.3 xshell配置密钥登录3.3.1 生成密钥3.3.2 将密钥上传到服务器并设置3.3.3 用xshell密钥登录服务器总结前言 重点强调&#xff1a; 本文是解决xshell的…

Linux系列 使用vi文本编辑器

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.vi文本编辑器 1.使用vi文本编辑器 2.vi编辑器的工作模式 3.命令模式中的…

【LeetCode】剑指 Offer(13)

目录 题目&#xff1a;剑指 Offer 31. 栈的压入、弹出序列 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a; 题目&#xff1a;剑指 Offer 31. 栈…

重写toString()方法-课后程序(JAVA基础案例教程-黑马程序员编著-第十二章-课后作业)

【案例12-1】&#xff1a;重写toString()方法 【案例介绍】 1.案例描述 为了方便输出对象&#xff0c;Object类提供了toString()方法。但是该方法的默认值是由类名和哈希码组成的&#xff0c;实用性并不强。通常需要重写该方法以提供更多的对象信息。 本案例要求使用反射重…

3D可视化大屏制作真的那么难?没有好用的软件解决吗?

有多少人印象里的数据可视化大屏还是像这样的二维大屏&#xff1f;这种二维可视化大屏早就不能满足审美日益提高的大众了。 现在用的都是3D可视化大屏&#xff0c;这种结合了3D技术的可视化形式不仅让数据更加的清晰&#xff0c;也增加了美感&#xff0c;这观看体验&#xff…

【数据结构】单链表——增删查改【万字介绍】

目录 一&#xff0c;线性表 1&#xff0c;什么是线性表 2&#xff0c;线性表的结构 二&#xff0c;链表 1&#xff0c;什么是链表 2&#xff0c;链表的分类 3&#xff0c;单链表的特点 三&#xff0c;链表的实现 1&#xff0c;结构的定义 2&#xff0c;创建一个新结点 3&#…

ChatGPT 不是黑魔法,“替代搜索引擎”言之尚早

ChatGPT 火了。整个 LLM 和搜索领域都已经在过去几个月内发生了翻天覆地的变化。ChatGPT 不再是一个玩具&#xff0c;它开始被微软、谷歌集成在搜索以及各个 SaaS 服务中&#xff0c;且取得了令人惊叹的效果。我尝试着使用 ChatGPT 回答过去一个月搜索过的 30 个问题&#xff0…

10个必须知道的JavaScript技巧,让你成为更好的程序员

1.Promise回调地狱Promises 提供了一种优雅的方式来处理 JavaScript 中的异步操作。这也是避免“回调地狱”的解决方案之一。但是我并没有真正理解它的意思&#xff0c;所以我写了这段代码。我做了这些事情&#xff1a;先获取用户的基本信息。按用户信息获取所有文章的简要摘要…

SPI_Master驱动程序框架

SPI_Master驱动程序框架 文章目录SPI_Master驱动程序框架一、SPI传输概述1.1 数据组织方式1.2 SPI控制器数据结构二、 SPI传输函数的两种方法2.1 老方法2.2 新方法致谢参考内核源码: drivers\spi\spi.c 一、SPI传输概述 1.1 数据组织方式 使用SPI传输时&#xff0c;最小的传…

hutool日期工具类相关:获取某月所有周、某周的起止时间或所有日期、计算连续天数

目录前言实现1、获取当月的所有周2、根据指定的第几周&#xff0c;获取这周的开始、结束时间3、获取当前月某一周的所有日期4、多个日期中&#xff0c;计算最大的连续天数5、判断指定日期是否在某个范围内前言 最近做项目&#xff0c;碰到一个比较复杂的日期查询方式&#xff…

内网vCenter部署教程二,最全的了!

一、组网说明 vCenter组网最佳实践 每台服务器需要6个网口,需要三个分布式交换机,每个交换机分配2个物理网卡做冗余,分别做为管理网络、业务网络、高可用网络使用。另vsan网络和vmotion网络可以复用业务网络或管理网络,vcenter HA需要单独用一个网络。 二、创建管理网络…

Ubuntu通过rsync和inotify实现双机热备

Rsync Inotify双机热备 一、备份机操作 备份机&#xff1a;主服务器或主机文件将需要备份的文件同步到此服务器上&#xff0c;即从主服务器上同步过来进行备份。 1.1安装rsync sudo apt-get install rsync1.2修改/etc/dault/rsync文件 sudo vim /etc/default/rsync修改如…

二叉树——修剪二叉搜索树

669. 修剪二叉搜索树 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即&#xff0c;如果没有被移除&#xff0c;原有的父代…

GPT:通用预训练语言模型

论文标题&#xff1a;Improving Language Understanding by Generative Pre-Training论文链接&#xff1a;https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf论文来源&#xff1a;OpenAI一、概述从无标注文本中高效学习的能力对于缓解对监督学习的依赖…