C语言进阶 数据的存储(上)

简介: C语言进阶 数据的存储(上)

一、 数据类型详细介绍

我们前面已经学习了基本的内置类型

char 字符数据类型

short 短整型

int 整型

long 长整型

long long 更长的整型

float 单精度浮点型

double 双精度浮点形

类型有什么意义呢?

1 使用这个类型开辟内存空间的大小

比如说 int 4个字节 short 两个字节 char 一个字节

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

这个本文后面会提及

1. 整型家族

char类型

包括 unsigned char signed char

short类型

包括unsigned short signed short

int类型

包括unsigned int signed int

long类型

包括unsigned long signed long

2. 浮点数家族

float

double

3. 构造类型

包括

数组类型

结构体类型struct

枚举类型enum

联合类型union

4. 指针类型

int* p

char *p

float *p

等等

5. 空类型

void表示空类型(无类型)

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

二. 原码 反码 补码

计算机中有整数的三种2进制表示方式 即原码 反码 补码

整数的原码 反码 补码都相同

负数的三种表示方式各不相同

原码

直接将数值按照正负数的形式翻译成二进制就可以得到原码

反码

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

补码

反码加一得到补码

例如

1的原码 反码 补码都是

0000 0000 0000 0000 0000 0000 0000 0001

-1的原码是

1000 0000 0000 0000 0000 0000 0000 0001

反码是

1111 1111 1111 1111 1111 1111 1111 1110

补码是

1111 1111 1111 1111 1111 1111 1111 1111

对于整型数据俩说 计算机中存放的是补码

这样的好处有两个

1 可以将符号位和数值域统一处理

2 cpu只能做加法处理

(大家可以尝试一下1和-1的原码 还有补码相加 运算完就会明白这样设计的精妙之处)

3 原码和反码相互转换 运算过程是相同的

(原码取反加一得到补码 同样的补码取反加一得到原码)

三、大小端字节序介绍及判断

关于大小端的介绍大家可以看我的这一篇文章

大端法和小端法 这里我就不细说了

关于如何判断大小端法,我们可以设计一个函数实现

这样子就可以判断我们机器使用的是大端法还是小端法啦

目录
相关文章
|
1天前
|
C语言
指针进阶(C语言终)
指针进阶(C语言终)
|
2天前
|
存储 C语言
【海贼王编程冒险 - C语言海上篇】C语言中的数据类型有哪些?又是如何存储?
【海贼王编程冒险 - C语言海上篇】C语言中的数据类型有哪些?又是如何存储?
5 0
|
2天前
|
存储 C语言
【C语言进阶篇】整数在内存的存储——原码、反码、补码
【C语言进阶篇】整数在内存的存储——原码、反码、补码
|
2天前
|
存储 C语言 C++
【C语言刷题系列】水仙花数的打印及进阶
【C语言刷题系列】水仙花数的打印及进阶
|
6天前
|
存储 C语言
C语言----数据在内存中的存储(2)
C语言----数据在内存中的存储
12 0
|
6天前
|
存储 C语言
C语言----数据在内存中的存储(1)
C语言----数据在内存中的存储
|
6天前
|
存储 C语言
C语言---求一个整数存储在内存中的二进制中1的个数--3种方法
C语言---求一个整数存储在内存中的二进制中1的个数--3种方法
|
13天前
|
存储 小程序 编译器
【C语言基础】:数据在内存中的存储
【C语言基础】:数据在内存中的存储
|
16天前
|
存储 C语言
C语言进阶 文件操作知识(下)
C语言进阶 文件操作知识(下)
15 2
|
存储 程序员 C语言
程序员之路:C语言中存储类别
程序员之路:C语言中存储类别
119 0