数据的存储

目录

1.数据的类型

2.整形在内存中的存储

 


1.数据的类型

        基本的内置类型及它们所占空间的大小(字节):

char             //字符数据类型          1
short           //短整型                 2
int               //整形                 4
long             //长整型                4/8
long long     //更长的整形(c99标准)      8
float          //单精度浮点数              4
double         //双精度浮点数             8

1.1数据类型的基本归类

整形家族:

char (字符的本质是ASCII码值所以看作整形)

int

short

long

long long

        其中它们又细分为:signed型和unsigned型,即有符号和无符号型。在编译器中使用时默认为有符号型(char不一定,取决于不同编译器的实现)。

浮点型家族:

float

double

        其中float的精度较低,存储的数值范围较小,double则更高些。

构造类型(又称自定义类型):

数组

结构体  struct

联合体   union

枚举   enum

指针类型:

int*

char*

void* 

float*

空类型:

void表示空类型(无类型)

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


2.整形在内存中的存储

2.1原码、补码、反码

整数的2进制表示有三种表示形式:

 1. 正的整数,原码、反码、补码相同

 2. 负的整数,原码、反码、补码是需要计算的

原码:直接通过正负的形式写出的二进制序列就是原码

反码:原码的符号位不变,其他位按位取反得到的就是反码

补码:反码+1就是补码

整数在内存中存放的是补码的二进制序列

例:

int a=10;
//00000000000000000000000000001010    -原码
//00000000000000000000000000001010    -补码
//00000000000000000000000000001010    -反码


int b=-10;
//10000000000000000000000000001010    -原码
//11111111111111111111111111110101    -反码
//11111111111111111111111111110110    -补码

2.2大小端

大端【字节序】存储:
把一个数据的高位字节序的内容存放在低地址处,把低位字节序的内容放在高地址处,就是大端字节序存储。
小端【字节序】存储:
把一个数据的高位字节序的内容存放在高地址处,把低位字节序的内容放在低地址处,就是小端字节序存储。
 

例:

0x11 22 33 44
 

我们常用的x86结构就是小端模式。

(ps:signed char取值范围为-128~127,unsigned char取值范围是0~255。)


 


 

        

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值