💘作者:你我皆为凡人
💘博客主页:你我皆为凡人的博客
💘名言警句:时间不会为任何人停留,而事物与人,无时不刻也在变化着。每一个人,也都在不停向前!
💘觉得博主文章写的不错的话,希望大家三连(✌关注,✌点赞,✌评论),多多支持一下!!
💘系列作品:
💘
文章目录
目录
🙈 前言
本文重点讲解了数据类型的详细介绍与在内存中存放的数值,整形在内存中的存储以及原码反码补码的详细介绍,大小端字节序介绍及其判断,以及7道经典的题型让大家得以巩固知识
提示:以下是本篇文章正文内容,下面案例可供参考
💫数据类型的介绍
前面我们已经学习了基本的内置类型:
#include<stdio.h>
int main()
{
char 1字节 //字符数据类型
short 2字节 //短整型
int 4字节 //整形
long 4/8字节 //长整型
long long 8字节 //更长的整形
float 4字节 //单精度浮点数
double 8字节 //双精度浮点数
return 0;
}
类型的意义:
1,使用这个类型开辟内存空间的大小,而大小决定了使用的范围
2,决定了如何看待内存空间的视角
类型的基本归类:
整型家族:
char
unsigned char
signed char
short
unsigned short [int]
signed short [int]
int
unsigned int
signed int
long
unsigned long [int]
signed long [int]
浮点数家族:
float
double
构造类型:
数组类型
结构体类型 struct
枚举类型 enum
联合类型 union
指针类型:
int *pi;
char *pc;
float* pf;
void* pv;
空类型:
void 表示空类型(无类型)
通常应用于函数的返回类型、函数的参数、指针类型
💫整形在内存中的存储
int main()
{
int a = 20;
int b = -10;
return 0;
}
我们之前了解过一个变量的创建是要在内存中开辟空间的,空间大小是根据不同的类型而创建的,那么接下来我们谈谈数据在所开辟的内存中到底是如何存储的,比如上面的代码,我们知道a和b分配4个字节的空间,那么是如何存储的呢?
💘 原码,反码,补码
整数可以用二进制,十进制,十六进制,八进制表示,而在内存中是用二进制来展示,而整数的二进制表示有三种表示,原码,反码与补码
三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位用0或者1表示
对于负整数的三种表示方法各不相同:
原码:
直接将整数按照正负数的形式表示成二进制就可以
反码:
将原码的符号位不变,其他位依次安位取反就可以得到
补码:
反码+1就得到补码
正数的原,反,补码都相同
而对于整形来说,数据存放内存中其实存放的是补码
所以上图的代码在内存中的存储就是这样的: