0
点赞
收藏
分享

微信扫一扫

数据的存储

独兜曲 2022-01-31 阅读 36

数据类型的介绍:

基本的内置类型

char        //字符数据类型
short       //短整型
int         //整形
long        //长整型
long long   //更长的整形
float       //单精度浮点数
double      //双精度浮点数

类型的意义:

1. 使用这个类型开辟内存空间的大小(大小决定了使用范围)。

2. 如何看待内存空间的视角。

整型家族:

char
 unsigned char//0-255
 signed char//-128--127
short
 unsigned short [int]
 signed short [int]
int
 unsigned int
 signed int
long
 unsigned long [int]
 signed long [int]

加了中括号的代表可以省略,有符号的整型也可以省略。

 

 

浮点数家族:

float

double

构造类型:

 指针类型:

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

整型在数据中的存储: 需要了解原码,反码,补码。

原码、反码、补码

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

三种表示方法均有 符号位 数值位 两部分,符号位都是用 0 表示 ,用 1 表示 ,而数值位

三种表示方法各不相同。

原码

直接将二进制按照正负数的形式翻译成二进制就可以。

反码

将原码的符号位不变,其他位依次按位取反就可以得到了。

补码

反码 +1 就得到补码。

正数的原、反、补码都相同。

对于整形来说:数据存放内存中其实存放的是补码。

举个例子如下:

 

一道例题:

 

 

 

发生整型提升,会按照符号位补全32个比特位。 

 

 

i小于255恒成立,所以是死循环。 

 

 

 

 

设计一个小程序来判断当前机器的字节序(大小端) 

 

#include <stdio.h>
int check_sys()
{
 int i = 1;
 return (*(char *)&i);
}
int main()
{
 int ret = check_sys();
 if(ret == 1)
 {
 printf("小端\n");
 }
 else
 {
 printf("大端\n");
 }
 return 0; }

把整型的指针强制转换为字符的指针,只访问一个字节。

函数没有接收返回值,就算你给他值也不做任何的回应。 

浮点数的存储:

 

 

 

 

 

 

 

举报

相关推荐

0 条评论