首页
学习
活动
专区
工具
TVP
发布

C语言--数据存储

目录 1、数据类型介绍 1.1、类型的基本归类 2、整形在内存中的存储 2.1、原码、反码、补码 2.2 大小端 2.3 练习题 3....反码:原码的符号位不变,其他位依次按位取反就可以得到了。 那么计算机为什么要这样存储? 在计算机系统中,数值一律用补码来表示和存储。...原来,在计算机中,内存存储数据,采用的是字节序的大小端存储模式。 什么是大小端?...大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址 中; 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地 址中。...但是在C语言中除了8 bit的char之外,还有16 bit的short型,32 bit的long型(要看具体的编译器),另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节

1.7K20

C语言数据存储

一、整形在内存中的存储 1....对于整形来说:数据存放内存中其实存放的是补码;在计算时,需要将整数的原码表示出来,若是正数,原反补相同,即可计算;若是负数,需将负数的原码表示出来,再转换为补码,再进行计算,计算完的数值仍然是补码,还需转换为原码才是最后的结果...大小端的存储模式 大端(存储)模式:是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; eg:0x11223344 小端(存储)模式:是指数据的低位保存在内存的低地址中,而数据的高位...-1; printf("a=%d,b=%d,c=%d",a,b,c); return 0; } 分析: 10000000 00000000 00000000 00000001...= 9.0时,9.0以浮点数的存储模式存到内存中,当以%d的形式打印时,会以整型数的解读方式解读9.0浮点数存储模式的二进制,所以是结果是1,091,567,616 int main()

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

C语言——数据存储

目录 数据类型介绍 整型家族 浮点数家族:  构造类型:  指针类型 空类型 原码 反码 补码 大小端介绍 大端小端 数据类型介绍 相信大家应该已经了解了基本的数据类型吧 整型家族 char 为什么归根到...因为:char虽然是字符类型,但是字符类型储存的时候,存储的字符的ascii码值 ascii值是整数。...三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位 负整数的三种表示方法各不相同  原码 :直接二进制按照正负的形式翻译成二进制就可以....反码:原码的的符号位不变,其他位依次取反就可以得到了 补码:反码加一就是补码 对于整数来说,数据存放内存中其实存放的是补码 大小端介绍 大端小端 大端(存储)模式,是指数据的低位保存在内存的高地址中...,而数据的高位,保存在内存的低地址 中; 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地 址中

1.3K10

C语言数据存储

C语言数据在内存中的存储 文章目录 C语言数据在内存中的存储 1.数据类型的介绍 2.整形在内存中的存储 2.1原码,反码,补码 2.2大小端字节序 2.3试题练习 3.浮点数在内存中的存储...3.1.浮点数在计算机内部的表示方法 3.2.浮点数的存储规则 3.3.一个练习题 写在最后 1.数据类型的介绍 C语言中具体由哪些数据结构: ps: 1.这里需要提醒大家的就是其实char也是整形家族的...补码:反码+1 这里是一个举例: 虽然有三种表示形式,但计算机内部放的是数据的补码,理由如下: 在计算机系统中,数值一律用补码来表示和存储原因在于,使用补码可以符号位和数值域统一处理...但是在C语言中除了8 bit的char之外,还有16 bit的short型,32 bit的long型(要看具体的编译器)。...C语言标准规定: 1.当一个数超过该类型数据所能存储的最大值就发生截断。如八个比特位的char存储32个比特位的int时只存储最后面的八个比特位。

1.4K00

C语言数据存储

signed int long unsigned long [int] signed long [int] 补充: char是signed char还是unsigned char,C语言标准并没有规定...对于整形来说:数据存放内存中其实存放的是补码。 在计算机系统中,数值一律用补码来表示和存储。...大小端介绍 什么大端小端: 大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中...但是在C语言中除了8 bit的char之外,还有16 bit的short型,32 bit的long型(要看具体的编译器),另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节...d,b=%d,c=%d",a,b,c);   return 0; } 2.

14510

C语言】探索数据存储(上篇)

✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 ---- 感谢您的点赞与关注,同时欢迎各位有空来访我的平凡舍 --...-- 文章目录 @[toc] ✍前言 数据类型 数据类型的基本分类 整形在内存中的存储 原码、反码、补码 大小端介绍 练习 结语 ✍前言 HelloHello,大家好,今天我们来一起来探索数据存储问题...,我大概用2篇博客来写这块的内容,今天,利用这一篇先来完成一部分,介绍数据类型,整形在内存中的存储:原码、反码、补码,以及大小端字节序。...大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中。...但是在C语言中除了8 bit的char之外,还有16 bit的short型,32 bit的long型(要看具体的编译器),另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节

60630

C语言进阶(一)---数据存储

一、数据类型详细介绍 1.c语言的基本内置类型 (c语言本身就具有的类型,我们可以直接拿来使用) ? c语言的类型: 1.内置类型 2. 自定义类型(构造类型) ?...接下来重点解释整型和浮点型在内存中的存储 二、整型在内存中的存储   一个变量的创建是要在内存中开辟空间的,空间的大小是根据不同的类型决定的。 1. 数据在所开辟内存中是如何储存的呢?...通过调试,我们得知了a,b在内存中存储的内容,那么a,b是如何转换成这样的数据呢? ? a,b进行二进制转换,内存中存储的是补码,计算a,b的补码 ?   ...) 整型只能存储32bit位,前面的1舍去 c是一个整型,只能存32个bit位,所以补码就为全0 c的结果为0;结果正确!!!...博客入口:C语言进阶(二)— 整型存放练习   好了,到此我们就知道了整型在内存中是如何存储的,那么浮点型的数据在内存中是如何存储的? 三、浮点型在内存中的存储 1.浮点数表示的形式 ?

2K20

C语言】探索数据存储(下篇)

✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 ---- 感谢您的点赞与关注,同时欢迎各位有空来访我的平凡舍 --...-- 大家好呀,前面我们了解了数据类型,数据类型的基本分类以及整型在内存中的存储还有了大小端的存储。...现在我们来开始进入今天的重要内容:《 浮点型在内存中的存储》。下面让我们来一探究竟,浮点型在内存中是如何存储的。...以32位浮点数为例,留给M只有23位,第一位的1舍去以后,等于可以保存24位有效数字。至于指数E,情况就比较复杂。...pFloat = 9.0; 通过计算器计算出结果: 这也就是num的值了 我们看看最后一个值:以浮点数形式放,再以浮点数打印,结果自然是9.0000000 结语 好的,关于数据存储的内容这块内容我们到这里结束了

51050

C语言进阶:整型数据存储

long[int] signed long[int] char : unsigned char signed char 因为char 类型的数据是通过ASCII值存储的,所以也属于整型家族 下表列出了关于标准整数类型的存储大小和值范围的细节...以下列出了32位系统与64位系统的存储大小的差别(windows 相同): 二.整型的存储 数据在内存中以2进制的形式存储,对于整数来说: 1.整数的二进制有三种表示形式:原码,反码,补码。...注意:数据都是以补码的形式存储的,计算时也是补码之间的运算,打印时按照原码打印。...首先 char 类型到底是 signed char 还是 unsigned char ,C语言标准并没有规定,这取决于编译器 1....-1; printf("a=%d,b=%d,c=%d\n",a,b,c); return 0; } 正解:a=-1,b=-1,c=255 a 和 b 很好理解,问题就是c,我们利用上面的巧记口诀

12910

C语言数据在内存中的存储

3.1 什么是大小端字节序 大端的字节序:一个数值的最低位字节的内容存储到高位地址,高位字节序的内容存储到低地址处。...小端的字节序:一个数值的最低位字节的内容存储到低位地址,高位字节序的内容存储到高地址处。 就像一个三位数从右往左就是个,十,百,也就是从低到高。...这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8 bit 位,但是在C语言中除了8 bit 的 char 之外,还有16 bit 的short 型,32 bit...我们常用的 X86 结构是小端模式,而KEIL C51 则为大端模式。很多的ARM,DSP都为小端模式。有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。...9以整型的形式存储在内存中,得到如下二进制序列:1 0000 0000 0000 0000 0000 0000 0000 1001首先, 9 的二进制序列按照浮点数的形式拆分,得到第一位符号位s=0,

8510

C语言数据在内存中的存储

---- 前言 不同的数据在内存中的存储形式是不同的,而当我们掌握数据在内存中的存储形式之后,会帮助我们更加了解计算机深层工作原理 废话不多说,我们接下来直接进入正题 一:数据类型详细介绍 ##1....20在表现形式为16进制的大端字节序下存为14 00 00 00 2.4还是上练习题吧(介绍的好累) 先说一些看似是废话,实际上却是非常重要的话语(不知道这些话很可能产生很多傻逼的疑问,) 1.c语言默认数字是...%d是打印int型的,也就是输出有符号的十进制数字,%u是打印unsigned int,也就是输出无符号的十进制整数 3.整型提升是c程序设计语言中的一项规定,在表达式进行计算时,所有的整型首先要提升为...("a=%d,b=%d,c=%d",a,b,c); return 0; } 储存: -1的补码为全1,当发生截断后存储在变量abc中的内存形式均为11111111,但打印的是int型的十进制数字...3.3总结整数和浮点数在存储时的一些区别 在小数部分的存储,我们直接浮点数二进制表示形式下的小数部分存到23比特位的部分即可(或者52比特位),在读取时我们也直接将其整体拿出来加上个1就是二进制形式下的浮点数表达了

93720

数据在内存中的存储(c语言)

这些类型决定类型使用时开辟空间的大小和看待这一内存空间的视角 1 整形类型 这里许多人可能想问为什么char放在了整形里面;其实是因为char在存数据时以ASCII形式存储,ASCII是整数,以整形存储...对于整形来说:数据存放内存中其实存放的是补码。 这是因为在计算机系统中,数值一律用补码来表示和存储。...而c则会从1111 1111变为11111111 11111111 11111111 11111111 也就是-1,所以b=256,c=0 让我们看看在内存中的存储 我们可以看到对于...这又是因为什么 大小端 大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址 中; 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地...但是在C语言中除了8 bit的char之外,还有16 bit的short 型,32 bit的long型(要看具体的编译器),另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节

14410

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

C语言:进制的转换以及原码、反码、补码 我们以整型在内存中的存储形式为基础,探究后面的内容:整型提升与截断、算数转换、大小端字节序和字节序判断、强制类型转换的原理、浮点数在内存中的存储!!...当长字节的数据类型用短字节的数据类型进行存储时,会发生截断,截断就是通过简单地高位丢弃,保存低位来实现 补充一条知识: C语言规定,char类型默认是否带有正负号,由当前的系统决定,也就是说char类型可能等价于...截断就是通过简单地高位丢弃,保存低位来实现 5.2 char数据类型强转int数据类型 char数据类型强转int数据类型的原理就是整型提升! 1....在C语言中,赋值操作是不受大小端影响的。 其中截断是通过简单地高位丢弃来实现的,而与数据存储的字节顺序无关 。...关于浮点数的比较在 《C语言深度解剖》这本书中有介绍。

9410

C语言进阶-数据在内存中的存储

目录 前言 数据类型 C语言基本的内置类型 类型的意义 类型的基本归类 整形在内存中的存储 原码、反码、补码 意义 大小端 什么是大端小端  为什么有大端和小端 一道笔试题 练习 浮点型在内存中的存储...浮点型在内存中的存储解析 数据类型 ---- C语言基本的内置类型 char //字符数据类型 unsigned char //signed(有符号)/unsigned(无符号)...反码:原码的符号位不变,其他位依次按位取反就可以得到了 补码:反码+1就得到补码 对于整形来说 数据存放内存中其实存放的是补码 而数据的读取是使用原码 意义 在计算机系统中,数值一律用补码来表示和存储...使用补码可以符号位和数值域统一处理 同时加法和减法也可以统一处理(CPU只有加法器) 而补码与原码相互转换的运算过程是相同的(共用一套法则)(不需要额外的硬件电路) 大小端 ---- 对于数据在内存存储补码时的字节排列顺序是有差异的... 为什么有大端和小端 计算机系统是以字节为单位,每个地址单元都对应着一个字节,一个字节为8 bit 而C语言中除了8 bit的char之外,还有其他类型(大于8bite)以及寄存器宽度不一样 必然会涉及存储时字节安排的问题

80530

C语言——L数据在内存中的存储

对于整形来说:数据存放内存中其实存放的是补码。 为什么呢? 在计算机系统中,数值⼀律⽤补码来表⽰和存储。...1、什么是大小端 其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为⼤端字节序存储和⼩端字节序存储。...大端(存储)模式:是指数据的低位字节内容保存在内存的⾼地址处,⽽数据的⾼位字节内容,保存在内存的低地址处。...(低高地址方向0x11223344由小放大 这是大端) 小端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存在内存的⾼地址处。...例如,CC++ 中的 char 类型通常是有符号的,所以其取值范围是 -128 到 127。而在很多其他语言中,比如 Java,char 类型是无符号的,所以其取值范围是 0 到 255。

11610

C语言数据类型存储、原码,反码,补码

共同学习交流 ✉️ 我们并非登上我们所选择的舞台,演出并非我们所选择的剧本 ♦  目录  类型的意义: ✨C语言的类型分为 ✨构造类型  ✨指针类型 空类型 ✨函数的返回类型☮ ✨函数的参数☪ 整形在内存当中的存储空间...C语言的类型分为 基本类型: 它们是算术类型,包括两种类型:整数类型和浮点类型。 枚举类型: 它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。...枚举类型:enum,这个是C语言的一个关键字,到时候会拿出写一篇给大家着重讲解这个枚举类型在C语言当中起到一个什么样子的作用。 联合体类型:union,这个也叫做是共用体,这个我们也现在不说。...; } int main(void) { print(); } 函数的参数☪ #include void print()//无参数的话进行传参也是可以的,但是这里没有所以我们C语言并不会进行接收...常见的浮点数: 3.14 、1E10(这个其实就是1.0✖10的10次方—E) 浮点数包括: C语言中的浮点类型有float、double 和 long double 类型。

46430

C语言进阶——数据在内存中的存储

---- 前言   经过前面博客的介绍,我们的C语言初阶已经学完了。...现在我们可以进入更深层次的C语言世界了,而本文是我们进阶的首篇文章,主要是介绍各种数据在内存中的存储情况,比如有符号char的最大值是多少、整型数据与浮点型数据在内存的存储方式有何不同等,学会这些知识能增加我们的内功...---- 正文 我们C语言中的有七种基本数据类型,可以分为三种:整型、实型、字符型。...大端存储:指数据高位次存放在内存的低地址中,而低位次则是存放在内存的高地址中  当为大端存储时,十六进制会正着显示小端存储:指数据高位次存放在内存的高地址中,而低位次则是存放在内存的低地址中当为小端存储时...总的来说,无论是反码相加还是浮点数的存储,都是非常巧妙的设计,是无数前辈绞尽脑汁的最优解,正是因为有了这些规则,今天我们才能看到如此完善的C语言体系。

12520

C语言内功】“数据在内存中的存储

int main() { char x = 'a'; printf("%c\n", x);//a printf("%d", x);//97 return 0; } 三.void *void表示空类型...1的补码 // 11111111111111111111111111111111 -1的补码 //1 00000000000000000000000000000000 发生截断 六.数据存储,...是以字节为单位(8byte) ps:图中为大端字节序(具体见相关知识点) 七.大小端介绍 1.大端(存储)模式,是指数据的高字节位保存在内存的低地址处,低位同理。...2.小端(存储)模式,是指数据的高字节位保存在内存的高地址处,高位同理。...八.进制位 16进制位依次是0~15(0~9 a b c d e f) 0x是16进制位的标识 一个16进制位表示4个二进制位,两个16进制位为1个字节 两道例题体会“整型提升”“数据的截断”

11610
领券