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

前言

       首先我们要知道当前的计算机系统使用的基本上都是二进制,数据在计算机中主要是以二进制补码的形式存储的;而在电脑内部所有的运算都是加法。

一.数据类型的归类

1.1基本类型

1.整型类型

int                                //整形

short int                       //短整型

long int                        //长整型

long long int                //双长整型

char                            //字符型 

bool                            // 布尔型               //c99新增

而整型的每一种都可以分为:无符号(unsigned)和有符号(signed)两种类型 ,signed可以省略。

列如:

char
        unsigned char
        signed char
short
        unsigned short [ int ]
        signed short [ int ]
int
        unsigned int
        signed int
long
        unsigned long [ int ]
        signed long [ int ]

 2.浮点类型

float                            //单精度浮点型

double                        //双精度浮点型

long double                //长双精度浮点型

C中有三个类型可以储存复数:                  //99新增

float _Complex                     //实部和虚部都为float类型

double _Complex                 //实部和虚部都为double类型

long double _Complex         //实部和虚部都为long double类型

2.1 派生类型

1.指针类型(*)

int * pi ;
char * pc ;
float* pf ;
void* pv ;

2.构造类型:

数组类型  ([])
结构体类型 struct
联合类型 union

 3.枚举类型(enum)

是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。

 4.空类型(void)

表示空函数,也就是没有返回值的函数。

通常应用于函数的返回类型、函数的参数、指针类型 。

二.大端小端与原码、反码、补码

数值的表示有多种形式:2进制,8进制,10进制,16进制等等。

 二进制只使用0和1两种数字表示数值。

二进制    0 1 10  11 100  101 110  111 1000 1001 1010 1011 1100  1101  1110  1111  10000

八进制    0  1   2  3    4      5     6     7     10      11     12    13     14      15    16       17       20

十进制    0  1   2  3    4      5     6     7       8        9     10    11    12       13     14      15       16

十六进制 0  1   2  3    4     5      6     7      8         9      A     B      C        D       E       F        10 

变量创建需要在内存中开辟空间,不同类型所开辟的空间大小也不同。

而数值在计算机中的内存中都是以二进制形式存储的。

2.1什么是大端小端

大端存储:用内存的高地址存储数据的低位,而内存的低地址存储数据的高位;

小端存储:用内存的低地址存储数据的低位,而内存的高地址存储数据的高位。

2.2原码、反码、补码

以整数为例:

计算机中有三种表示整数的方法,即原码、反码和补码。

有符号整型中第一位为符号位,‘0’表示正,‘1’表示负。

正整数的原码、反码、补码相同

负整数的三种表示方法都不同:

原码

直接将数值按正负数形式编译成二进制的形式

例如 -1;

原码:10000001

反码

原码的符号位不变,其他位按位取反

例如 -1;

反码:11111110

补码

反码+1得到补码

例如 -1;

补码:11111111

  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

力争上游\n

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值