首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言:数据在内存中的存储形式

一、整数在内存中的存储 关于整数在内存中的存储形式,在博主之前写的文章里已经介绍了!友友们可以去点下面链接去看,这里就不过多介绍。...C语言:进制的转换以及原码、反码、补码 我们以整型在内存中的存储形式为基础,探究后面的内容:整型提升与截断、算数转换、大小端字节序和字节序判断、强制类型转换的原理、浮点数在内存中的存储!!...计算机中,内存被分为了一个个内存单元,每个内存单元的大小是1个字节,所以当我们需要存储数据超过一个字节时,就涉及到了存储顺序的问题,根据存储顺序的不同,我们分为了大端字节序存储和小端字节序存储的概念。...⼤端(存储)模式:是指数据的低位字节内容保存在内存的⾼地址处,⽽数据的⾼位字节内容,保存 在内存的低地址处。...(在强制类型转换原理会解释) 2、CPU做数值运算时从内存中依顺序依次从低位到高位取数据进行运算,直到最后刷 新最高位的符号位,这样的运算方式会更高效 大端模式:

25820

深度分析数据在内存中的存储形式

文章目录 一、数据的基本类型介绍 二、整型在内存中的存储形式 1.原码、反码、补码 2.大小端介绍 3.浮点型在内存中的存储 ---- 一、数据的基本类型介绍 char//字符数据类型 short//短整型...int//整形 long//长整型 long long //更长的整形 float//单精度浮点数 double//双精度浮点数 二、整型在内存中的存储形式 一个变量的创建是要在内存中开辟空间的。...空间的大小是根据不同的类型而决定的。那接下来我们谈谈数据在所开辟内存中到底是如何存储的? 比如: int a = 20; int b = -10; 我们知道为a分配四个字节的空间。...在计算机系统中,数值一律用补码来表示和存储。...2.大小端介绍 什么大端小端: 大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中

82920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据在内存中的存储

    整数在内存中的存储 整数的2进制表示方法有三种,原码、反码和补码 原码、反码和补码是用于表示有符号整数的三种方式。 原码:有符号整数的原始表示形式。...在计算机中,通常使用补码来表示和存储有符号整数,因为它可以简化算术运算。 部分类型数据的存储 在内存中,整数的存储通常是以二进制形式表示的。整数占用的存储空间取决于其数据类型的位数。...long long:通常占用8个字节(64位),可以表示更大范围的整数。 整数在内存中的存储是直接以其二进制表示形式存储的。...例如,十进制数19在内存中的存储形式可能是00010011(假设使用8位的存储空间)。整数的存储形式还取决于计算机的字节序,即大端序(高位字节存储在低地址)或小端序(高位字节存储在高地址)。...由此,引出大小端: 在大端字节序中,整数的高位字节存储在内存的低地址处,而低位字节存储在内存的高地址处。换句话说,整数的最高有效位存储在最低的地址,最低有效位存储在最高的地址。

    18510

    数据在内存中的存储

    一、整数在内存中的存储 计算机中有3中二进制存储方法,即原码、补码、反码 正整数的原码、反码、补码都相同 负整数原码、反码、补码各不相同: 原码:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。...反码:将原码的符号位不变,其他位依次按位取反就可以得到反码。 补码:反码+1就得到补码。 对于整型数据,数据内存其实存放的是补码 why? 在计算机系统中,数值⼀律⽤补码来表⽰和存储。...大小端的介绍 其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为⼤端字节序存储和⼩端字节序存储,下⾯是具体的概念: ⼤端(存储)模式:是指数据的低位字节内容保存在内存的...⾼地址处,⽽数据的⾼位字节内容,保存在内存的低地址处。...⼩端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存在内存的⾼地址处。

    11210

    数据在内存中的存储

    负整数的三种表⽰⽅法各不相同。 二. ⼤⼩端字节序和字节序判断 1.其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为⼤端字节序存储和⼩端字节序存储。...⼤端(存储)模式:是指数据的低位字节内容保存在内存的⾼地址处,⽽数据的⾼位字节内容,保存在内存的低地址处。...⼩端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存在内存的⾼地址处。...浮点数在内存中的存储: 1.常⻅的浮点数:3.14159、1E10等,浮点数家族包括: float、double、long double 类型。...浮点数表⽰的范围: float.h 中定义 2.根据国际标准IEEE(电⽓和电⼦⼯程协会)754,任意⼀个⼆进制浮点数V可以表⽰成下⾯的形式: V = (-1) ∗ S M ∗ 2E  (-1)S

    10510

    数据在内存中的存储

    整数在内存中的存储 整数的二进制表示方法有三种,即原码,反码以及补码。 三种方式都有符号,即最高位是符号位,符号位为1是负数,为0则是整数,其余的是数值位。...这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着⼀个字节,⼀个字节为8bit位,但是在C语⾔中除了8bit的 char 之外,还有16bit的 short 型,32bit的 long...浮点数在内存中的存储 浮点数在内存中的存放与整数并不相同。...上⾯的代码中, num 和 *pFloat 在内存中明明是同⼀个数,为什么浮点数和整数的解读结果会差别这么⼤?...要理解这个结果,⼀定要搞懂浮点数在计算机内部的表⽰⽅法。

    4800

    数据在内存中的存储

    欢迎关注 熬夜学编程 创作不易,请多多支持 感谢大家的阅读、点赞、收藏和关注 如有问题,欢迎指正 一 整数在内存中的存储 整数是以二进制数的形式在内存中存储的,二进制的表示方式有三种,即原码,...数据存储在计算机内存中,存储的是整数的补码 为啥? 在计算机系统中,数值一律用补码来表示和存储的。...二  大小端字节序列的判断 我们通过前面了解数据在内存中的存储,,我们调试看一个细节: a中的0x11223344这个数字是以字节为单位逆着存储,这是为什么? 2.1 什么是大小端?...超过一个字节的数据在内存存储,就有存储顺序的问题,按照不同的存储顺序,我们分为大端字节序存储和小端字节序存储,下面是具体概念: 大端(存储)模式: 是指数据低位字节的内容保存在内存的高地址处,而数据的高位字节内容保存在内存的低地址处...小端(存储)模式: 是指数据低位字节的内容保存在内存的低地址处,而数据的高位字节内容保存在内存的高地址处。 注意:顺序指存储字节序的。 2.2 为什么有大小端? 为什么有大小端之分呢?

    7110

    数据在内存中的存储

    在学习C语言时,学会如何编写代码很重要,但还是远远不够的,学习相关数据在内存中的存储,有利于我们进一步学习相关知识以及加深对其的理解和掌握。...2.1 什么是大小段 其实超过一个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为大端字节序存储和小端字节序存储,下面是具体的概念: 大端(存储)模式: 是指数据的低位字节内容保存在内存的高地址处...小端(存储)模式: 是指数据的低位字节内容保存在内存的低地址处,而数据的高位字节内容,保存在内存的高地址处。 上述概念需要记住,方便分辨大小端。...3.2 浮点数的存储 上面的代码中,num和*pFloat在内存中明明是同样大小的一个数,为什么浮点数和整数的解读结果会差别这么大呢? 要理解这个结果,一定要搞懂浮点数在计算机内部的表示方法。...9以整型的形式存储在内存中,得到如下二进制序列: 0000 0000 0000 0000 0000 0000 0000 1001 首先,将 9 的整型形式的二进制序列按照浮点数的形式拆分,得到第一位符号位

    10910

    数据在内存中的存储

    补码:反码+1就是补码 反码与补码之间的转换就是,取反加一 对于整型数据来说:数据就是以二进制补码的形式存放在内存中 在计算机系统中,数值一律用补码来存储和表示。...我们知道,在内存中存储数据一般是以字节为单位的,而当超过一个字节大小的数据,存储的过程中就要遇到顺序问题,所以,内存中存储数据是有一定顺序的,按照不同的存储顺序,就分为大端字节序存储和小端字节序存储,具体概念如下...了解了整型数据在内存中的存储,接下来,来了解浮点型数据在内存中的存储: 浮点型数据的存储,根据国际标准IEEE(电器和电子工程协会)754,任意一个浮点数V都可以表示成一下形式: 这里-1的S次方表示符号位...0.000000 紧接着来看 *ploat = 9.0 以后,在以%d形式输出: 这里就要按照浮点型数据存储将9.0存储到内存中, 9 的二进制 1001.0 换成科学计数法就是 1.001 * 2^...,原码 转换为十进制就是 1091567616 最后以%f的形式在输出以浮点型存储到内存中的9.0,输出结果就是 9.000000。

    9510

    数据在内存中的存储

    划分了之后,就能更好的学习,所以在对数据在内存的存储的学习中,我们学习完了整数在内存中的存储。接下来就学习另一大块浮点数在内存中的存储。...整数在内存中的存储练习题 大小端字节和字节序判断(练习1) 基础知识点认知 对于内部字节为多个的单个数据来说,有大小端存储模式 那么为什么会存在大小端存储模式呢?...练习2 该题要做出来需要我们对数据在内存中的存放的这个大知识点的理解,用到了整形提升和截断,以及对printf的库函数内部理解(前面都讲过) 上面该图是其中具体细节变化,因为a是有符号,在截断后内存存放为...到这我们的整数在内存中的存储就结束了,接下来将给大家讲述单个数据另一大块:浮点数在内存中的存储。...浮点数在内存中的存储 浮点数在内存中的存储都是以二进制形式存储。

    12610

    数据在内存中的存储

    计算机要处理的信息是多种多样的,如数字、文字、符号、图形、音频、视频等,这些信息在人们的眼里是不同的。但对于计算机来说,它们在内存中都是一样的,都是以二进制的形式来表示。...要想学习编程,就必须了解二进制,它是计算机处理数据的基础。 内存条是一个非常精密的部件,包含了上亿个电子元器件,它们很小,达到了纳米级别。...1PB = 1024TB = 250Byte 1EB = 1024PB = 260Byte 我们平时使用计算机时,通常只会设计到 KB、MB、GB、TB 这几个单位,PB 和 EB 这两个高级单位一般在大数据处理过程中才会用到...你看,在内存中没有abc这样的字符,也没有gif、jpg这样的图片,只有0和1两个数字,计算机也只认识0和1。...所以,计算机使用二进制,而不是我们熟悉的十进制,写入内存中的数据,都会被转换成0和1的组合。 我们将在《C语言调试》中的《查看、修改运行时的内存》一节教大家如何操作C语言程序的内存。

    1.3K60

    数据在内存中的存储

    整数在内存中的存储 我们都知道,数据在内存中是以二进制的方式进行存储的,整数的二进制有原码,反码和补码三种,而真正在内存中存放的就是补码。...我们通过一个例子来说明 可以看出,为什么在内存中n的存储是倒着的 这就是我们要说的大小端的问题了 大端字节序:在这种模式下,数据的高字节保存在低地址,低字节保存在高地址。...例如,十六进制数0x12345678,在内存中的存储顺序是:12 34 56 78。 小端字节序:与小端相反,数据的低字节保存在低地址,高字节保存在高地址。...在32位浮点数中,将尾数的第一位默认为1后,剩下的位数就可以用来表示更多的有效数字。 指数E的存储 在存储过程中,指数需要经过一个偏移处理。...那么数据在内存中的基本存储原理就分享到这里了,有机会再补充。

    15310

    数据在内存中的存储

    数据的类型有很多如:短整型,整型,单精度浮点型,双精度浮点型........,如此多的类型,各个类型在内存中的存储的方式也有所不同,调用内存计算时进行的各个步骤也有可能不同。...本文将通过整型,浮点型两大种类型来进行探讨数据在内存中的如何存储。 序章:储备知识 在讲内存存储之前我们需要先了解一个非常非常重要的知识,它是我们贯穿本文的关键所在。...1.整数在内存中的存储 首先,我们讨论一个问题,整数是把以哪种码放在内存里的??? 对于整形来说:数据存放内存中其实存放的是补码。 为什么呢??? 在计算机系统中,数值⼀律⽤补码来表⽰和存储。...其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分 为⼤端字节序存储和⼩端字节序存储,下⾯是具体的概念: ⼤端(存储)模式:是指数据的低位字节内容保存在内存的⾼地址处...⼩端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存 在内存的⾼地址处。 以什么样的模式进行存储数字是根据编译器决定的。

    9110

    数据在内存中的存储

    ---- 数据在内存中的存储:: 整型及其浮点型存储方式: 1.数据类型介绍 内置类型: char 字符型 short 短整型 int 整型 long 长整型 long long 更长的整型 C99标准中引入...注:数据在内存中存储的是补码的二进制序列,只是显示的时候将其十六进制化. 3.大小端字节序介绍及判断 大小端介绍: 大端存储模式:是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中....小端存储模式:是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中....#include 大端存储模式:是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中....小端存储模式:是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中.

    1K30

    数据在内存中的存储

    整形在内存中的存储 对于整形来说,数据存放在内存中其实存放的是补码。原因在于,使用补码,可以将符号位和数值域同一处理。...大小端介绍 大端字节序存储:把一个数据的低位字节数处的数据存放在内存的高地址处,高位字节处的数据存放在内存的低地址处 小端字节序存储:把一个数据的低位字节数处的数据存放在内存的低地址处,高位字节处的数据存放在内存的低地址处...浮点型在内存中的存储 我们先看一个例子: 如果我们浮点型在内存中的存储方式与整形相同的话,第一个*pfloat的值应该为9.000000,可是我们看到结果却是0.000000。...显然,浮点型与整形在内存中的存储方式不同。...因为打印时是有符号的整形,第一位是0(是正数),原码等于补码,直接转成十进制的数后,结果就是一个很大的数。  以上就是数据在内存中的存储的简单介绍。

    14510

    【数据存储】浮点型数据在内存中的存储

    目录 1-0常见的浮点数 1-1浮点数在内存中的存储引入 1-2浮点数存的规则 1-3浮点数取的规则  1-4重新研究引入的那一题:(结合存和取) 1-6关于这个浮点型和整型的输出转换: 1-7 完结...,撒花,等等,不如来一个小测试: ---- 1-0常见的浮点数 两种表示形式: 直接表示:3.14 类似科学计数法:1E10 常见的浮点数类型:float ,double(更多细节在float.h中定义...,可使用软件everything里搜索) 1-1浮点数在内存中的存储引入 先来看一道题引入 #include //浮点型数据在内存中的存储 int main() { int...,同时按照整数(浮点数)的视角拿出来是正常的 2.但是按整数(浮点数)的方式存进去,同时按照浮点数(整数)的视角拿出来不正常(和我们开始想的不一样)的 总结: 从这里我们可以看出整数和浮点数在内存中的存储方式是有区别的...这意味着,如果E为8位,它的取值范围为0-255:如果E为11位,它的取值范围为0-2047,但是,我们知道,科学计数法中的E是可以出现负数的,所以规定,存入内存时E的真实值必须再加上一个中间数,对于8

    1.6K30

    数据在内存中的存储之整数存储

    对于整形来说:数据存放内存中其实存放的是补码。 为什么呢? 在计算机系统中,数值一律用补码来表示和存储。...1.1大小端字节序和字节序判断 大小端:         其实超过一个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为大端字节序存储和小端字节序存储,下面是具体的概念:...大端(存储)模式:是指数据的低位字节内容保存在内存的高地址处,而数据的高位字节内容,保存在内存的低地址处。...小端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,而数据的高位字节内容,保存在内存的高地址处。 上述概念需要记住,方便分辨大小端。...有符号char: a是char类型,单位1字节,所以a在计算机中存储的二进制为11111111(发生了截断) 而打印是以有符号的整型形式打印,char类型要发生整型提升 整型提升:

    13010

    数据在内存中的存储方式

    前言 我们都知道,在计算机中,数据都是以二进制的形式存储的。但是对于整数和浮点数而言,它们的存储方式却略有不同。今天我们深入探讨以下整数和浮点数在内存中的存储。...这就涉及到大小端的问题了。 1.什么是大小端 对于一个超过一字节的数据,在内存中存储的时候我们就需要考虑到字节排列的顺序问题。...因为在很多编程语言当中,许多数据类型的内存大小是大于一个字节(8bit)的,它们存储在宽度大于一个字节的寄存器当中时,必然存在多个字节安排顺序的问题。因此,大端字节序和小端字节序就出现了。...为什么同一个数,以不同的类型输出会有这么大的差异?这就关乎浮点数在内存中的存储了。...我们可以发现:对于一个浮点数,只要知道了S,M,E这三个值,就能得出这个浮点数的值。在计算机中,浮点数也是将这三个数存储到内存中,使用时根据规则就能够得到该值。

    16710

    数据在内存中的存储(2)

    浮点型在内存中的存储 常见的浮点数: 3.14159 1E10 ------ 1.0 * 10^10 浮点数家族包括: float、double、long double 类型 浮点数表示的范围:...float.h中定义 3.1 一个例子 浮点数存储的例子: #include int main() { int n = 9; float* pFloat = (float*...因此,我们可以推出:整型和浮点型在内存中的存储方式是有差异的! 3.2 浮点数存储规则 num 和 *pFloat 在内存中明明是同一个数,为什么浮点数和整数的解读结果会差别这么大?...要理解这个结果,一定要搞懂浮点数在计算机内部的表示方法。...但是,我们知道,科学计数法中的E是可以出现负数的,所以IEEE 754规定,存入内存时E的真实值必须再加上一个中间数,对于8位的E,这个中间数是127;对于11位的E,这个中间数是1023。

    14210

    数据在内存中的存储(1)

    整形在内存中的存储 我们之前讲过一个变量的创建是要在内存中开辟空间的,空间的大小是根据不同的类型而决定的。...在计算机系统中,数值一律用补码来表示和存储。...(本质上内存中存放的是二进制,在VS上为了方便展示,显示的是16进制),但是我们发现顺序有点不对劲,这又是为什么呢?...2.2 大小端介绍 int main() { int a = 0x11223344; return 0; } 字节序是以字节为单位,讨论存储顺序的 大端(存储)模式,是指数据的低位保存在内存的高地址中...,而数据的高位,保存在内存的低地址中 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高地址中 为什么有大端和小端: 为什么会有大小端模式之分呢?

    16210
    领券