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

C语言——数据存储

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

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

C语言数据存储

signed int long unsigned long [int] signed long [int] 补充: char是signed char还是unsigned char,C语言标准并没有规定...整形在内存中存储 一个变量创建是要在内存中开辟空间。空间大小是根据不同类型而决定。 int a = 20; int b = -10; 该段代码为 a 分配四个字节空间。 那如何存储?...在内存中存储: 可以看到对于a和b分别存储是补码。但是我们发现顺序有点不对劲。 这是又为什么?...但是在C语言中除了8 bitchar之外,还有16 bitshort型,32 bitlong型(要看具体编译器),另外,对于位数大于8位处理器,例如16位或者32位处理器,由于寄存器宽度大于一个字节...d,b=%d,c=%d",a,b,c);   return 0; } 2.

15210

C语言--数据存储

原来,在计算机中,内存存储数据,采用是字节序大小端存储模式。 什么是大小端?...大端(存储)模式,是指数据低位保存在内存高地址中,而数据高位,保存在内存低地址 中; 小端(存储)模式,是指数据低位保存在内存低地址中,而数据高位,,保存在内存高地 址中。...但是在C语言中除了8 bitchar之外,还有16 bitshort型,32 bitlong型(要看具体编译器),另外,对于位数大于8位处理器,例如16位或者32位处理器,由于寄存器宽度大于一个字节...我们常用 X86 结构是小端模式,而 KEIL C51 则为大端模式。很多ARM,DSP都为小端模式。有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。 2.3 练习题 3....、浮点型在内存中存储 通过上面,我们知道,整数在计算机里面的存储方式是根据二进制原、反、补码来存储和使用。那么,浮点数,是否也是用原反补呢?如果是用原反补,那么它小数点是什么样形式?

1.7K20

C语言 | 变量存储方式

在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历是日积月累学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...C语言动态存储方式与静态存储方式 静态存储方式是指在程序运行期间由系统分配固定存储空间方式;动态存储方式是在程序运行期间根据需要进行动态分配存储空间方式。...在C语言中,每一个变量和函数都有两个属性: 数据类型 数据存储类别。 C语言存储类别包括4种: 自动(auto) 静态(static) 寄存器(register) 外部(extern)。...C语言局部变量存储类别 自动变量(auto变量) 函数中局部变量,如果不专门声明static存储类别,都是动态地分配存储空间,数据存储在动态存储区中。自动变量用关键字auto做存储类别声明。...C语言全局变量存储类别 在一个文件内扩展外部变量作用域 如果由于某种考虑,在定义点之前函数需要引用该外部变量,则应该在引用之前用关键字extern对该变量作“外部变量声明”,表示把该外部变量作用域扩展到此位置

1.4K60

C语言 | 变量存储方式

C语言动态存储方式与静态存储方式 静态存储方式是指在程序运行期间由系统分配固定存储空间方式;动态存储方式是在程序运行期间根据需要进行动态分配存储空间方式。...在C语言中,每一个变量和函数都有两个属性: 数据类型 数据存储类别。 C语言存储类别包括4种: 自动(auto) 静态(static) 寄存器(register) 外部(extern)。...C语言局部变量存储类别 自动变量(auto变量) 函数中局部变量,如果不专门声明static存储类别,都是动态地分配存储空间,数据存储在动态存储区中。自动变量用关键字auto做存储类别声明。...C语言全局变量存储类别 在一个文件内扩展外部变量作用域 如果由于某种考虑,在定义点之前函数需要引用该外部变量,则应该在引用之前用关键字extern对该变量作“外部变量声明”,表示把该外部变量作用域扩展到此位置...100道C语言源码案例请去公众号:C语言入门到精通

2.1K40

C语言之数据存储

C语言中数据在内存中存储 文章目录 C语言中数据在内存中存储 1.数据类型介绍 2.整形在内存中存储 2.1原码,反码,补码 2.2大小端字节序 2.3试题练习 3.浮点数在内存中存储...3.1.浮点数在计算机内部表示方法 3.2.浮点数存储规则 3.3.一个练习题 写在最后 1.数据类型介绍 C语言中具体由哪些数据结构: ps: 1.这里需要提醒大家就是其实char也是整形家族...2.整形家族又有有符号和无符号区别,一般int就是指signed int而char是指signed char还是unsigned char是c语言标准未定义取决于编译器。...但是在C语言中除了8 bitchar之外,还有16 bitshort型,32 bitlong型(要看具体编译器)。...C语言标准规定: 1.当一个数超过该类型数据所能存储最大值就发生截断。如八个比特位char存储32个比特位int时只存储最后面的八个比特位。

1.4K00

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

✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 ---- 感谢您点赞与关注,同时欢迎各位有空来访我平凡舍 --...:为什么补码存储方式是倒着存 我们可以看到对于a和b分别存储是补码。...但是在C语言中除了8 bitchar之外,还有16 bitshort型,32 bitlong型(要看具体编译器),另外,对于位数大于8位处理器,例如16位或者32位处理器,由于寄存器宽度大于一个字节...我们常用 X86 结构是小端模式,而 KEIL C51 则为大端模式。很多ARM,DSP都为小端模式。...("a=%d,b=%d,c=%d",a,b,c); return 0; } 想想为什么?

61430

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

一、数据类型详细介绍 1.c语言基本内置类型 (c语言本身就具有的类型,我们可以直接拿来使用) ? c语言类型: 1.内置类型 2. 自定义类型(构造类型) ?...首先char是字符类型,不好归类,同时字符在内存中是以Ascll码值存储,Ascll码值是整数,字符存储时候也是以整数进行存储,所以也属于整形家族   unsigned signed 怎么描述有符号无符号呢...相加结果 10000000 0000000 0000000 0000000 (c补码) 整型只能存储32bit位,前面的1舍去 c是一个整型,只能存32个bit位,所以补码就为全0 c结果为...通过举这个1-1反例 我们得知为什么内存中存储是整形二进制补码。   重新回到前头 3. a,b在内存中如何存储 ?   ...博客入口:C语言进阶(二)— 整型存放练习   好了,到此我们就知道了整型在内存中是如何存储,那么浮点型数据在内存中是如何存储? 三、浮点型在内存中存储 1.浮点数表示形式 ?

2.1K20

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

ASCII值存储,所以也属于整型家族 下表列出了关于标准整数类型存储大小和值范围细节: 注意,各种类型存储大小与系统位数有关,但目前通用以64位系统为主。...以下列出了32位系统与64位系统存储大小差别(windows 相同): 二.整型存储 数据在内存中以2进制形式存储,对于整数来说: 1.整数二进制有三种表示形式:原码,反码,补码。...注意:数据都是以补码形式存储,计算时也是补码之间运算,打印时按照原码打印。...三.整型提升 1.什么是整型提升: C整型算数运算总是至少以缺省整型类型精度来进行。...首先 char 类型到底是 signed char 还是 unsigned char ,C语言标准并没有规定,这取决于编译器 1.

13610

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

✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 ---- 感谢您点赞与关注,同时欢迎各位有空来访我平凡舍 --...-- 大家好呀,前面我们了解了数据类型,数据类型基本分类以及整型在内存中存储还有了大小端存储。...现在我们来开始进入今天重要内容:《 浮点型在内存中存储》。下面让我们来一探究竟,浮点型在内存中是如何存储。...浮点型在内存中存储 我们知道,浮点数家族包括: float、double、long double 类型。...下面我们一起来看看是怎么存储 浮点数存储规则 详细解读: 根据国际标准IEEE(电气和电子工程协会) 754,任意一个二进制浮点数V可以表示成下面的形式: (-1)^S * M * 2E (-1)S表示符号位

52450

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

整数在内存中存储 整数存储: 整数二进制表示方法有三种:原码、反码和补码。...大小端字节序和字节序判断 当一个数值超过1个字节时候,存储在内存中有存储顺序问题,而内存储存单元是1字节。...3.1 什么是大小端字节序 大端字节序:将一个数值最低位字节内容存储到高位地址,高位字节序内容存储到低地址处。...这是因为在计算机系统中,我们是以字节为单位,每个地址单元都对应着一个字节,一个字节为8 bit 位,但是在C语言中除了8 bit char 之外,还有16 bit short 型,32 bit...我们常用 X86 结构是小端模式,而KEIL C51 则为大端模式。很多ARM,DSP都为小端模式。有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。

9710

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

1.c语言默认数字是int型也就是32比特位 2....%d是打印int型,也就是输出有符号十进制数字,%u是打印unsigned int,也就是输出无符号十进制整数 3.整型提升是c程序设计语言一项规定,在表达式进行计算时,所有的整型首先要提升为...("a=%d,b=%d,c=%d",a,b,c); return 0; } 储存: -1补码为全1,当发生截断后存储在变量abc中内存形式均为11111111,但打印是int型十进制数字...11111111-补码 c: 00000000 00000000 00000000 11111111-原码,反码,补码 读取:ab都是有符号数字,原码,反码,补码都是不相同所以在我们想要知道他结果时...,要去读取他原码,但c是无符号数字,所以他原码,反码,补码相同,直接读取就OK了。

96620

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

c则会从1111 1111变为11111111 11111111 11111111 11111111 也就是-1,所以b=256,c=0 让我们看看在内存中存储 我们可以看到对于...a和b分别存储是补码。...这又是因为什么 大小端 大端(存储)模式,是指数据低位保存在内存高地址中,而数据高位,保存在内存低地址 中; 小端(存储)模式,是指数据低位保存在内存低地址中,而数据高位,,保存在内存高地...但是在C语言中除了8 bitchar之外,还有16 bitshort 型,32 bitlong型(要看具体编译器),另外,对于位数大于8位处理器,例如16位或者32位处理器,由于寄存器宽度大于一个字节...我们常用 X86 结构是小端模式,而 KEIL C51 则为大端模式。很多ARM,DSP都为小端模式。

15010

C语言进阶:浮点型数据存储

浮点数存储规则 根据国际标准IEEE( 电器和电子工程协会 ) 754,任意一个二进制浮点数V可以表示成下面的形式: --(-1)^ S * M * 2 ^ E --(-1)^ S 表示符号位,当 S...IEEE 745 规定: 1.对于32位浮点数,最高1位是符号位s,接着8位是指数E,剩下23位为有效数字M。...如图: 2.对于64位浮点数,最高1位是符号位S,接着11位是指数E,剩下52位为有效数字M。 如图: IEEE 754对有效数字M和指数E,还有一些特别规定。...但是,我们 知道,科学计数法中E是可以出 现负数,所以IEEE 754规定: 存入内存时E真实值必须再加上一个中间数,对于8位E,这个中间数 是127;对于11位E,这个中间 数是1023。...这就涉及到浮点型数据存储与读取了 请看下图: 我们把代码改成下图所示,就能看见小数点后更多数字: 例2: #include int main() { float a=5.5f

12210

C语言之浮点数存储

C语言中,有两种类型浮点数:32位float和64位double,而在计算机中存储是用二进制科学计数法(即基数为2)表示值 例如100=1100100B=1.1001B*26,123.456...既然基数固定为2,尾数整数部分固定为1,那存储时就可以省略掉它俩了,只需要存储另外三个信息:正负符号+指数+尾数小数部分 float:符号占1位,指数占8位,尾数小数占23位; double:符号占...将C语言定义转换为汇编验证一下 ? 再看一个纯小数存储,例如0.00123456,这次倒着推导一下 ?...计算机中存储是983683318,转换为二进制就是00111010101000011101000011110110B。...计算机里存储是两个32位数:1079958831(高)、446676599(低) ?

1.4K11

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

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

10710

C语言进阶】整型在内存中存储

这个系列,我们将探索C语言中更深层内容! ---- 前言  在日常敲代码过程中,我们经常会使用整型常量来对变量进行赋值,但我们可能却没有考虑过不同变量到底是如何存入内存中!...----        2.整型在内存中存储必须知道基础知识(原反补码)     在内存中,不管是正数还是负数,存储形式都是以补码形式存储!!    ...首先,在内存中存储时,我们都会存储整型二进制。那么就用二进制来表示整型原码,反码和补码啦!        计算机中整数有三种2进制表示方法,即原码、反码和补码。      ... 所以,在了解并掌握以后,试一试你所使用编译器是什么存储方式吧!...总结 1.在内存中,不管是正数还是负数,存储形式都是以补码形式存储!!       2.一般情况下,int,char等整型通常是有符号数。

80820
领券