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 原码和反码相互转换 运算过程是相同的

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

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

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

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

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

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

目录
相关文章
|
26天前
|
存储 程序员 编译器
C 语言中的数据类型转换:连接不同数据世界的桥梁
C语言中的数据类型转换是程序设计中不可或缺的一部分,它如同连接不同数据世界的桥梁,使得不同类型的变量之间能够互相传递和转换,确保了程序的灵活性与兼容性。通过强制类型转换或自动类型转换,C语言允许开发者在保证数据完整性的前提下,实现复杂的数据处理逻辑。
|
27天前
|
存储 数据管理 C语言
C 语言中的文件操作:数据持久化的关键桥梁
C语言中的文件操作是实现数据持久化的重要手段,通过 fopen、fclose、fread、fwrite 等函数,可以实现对文件的创建、读写和关闭,构建程序与外部数据存储之间的桥梁。
|
1月前
|
存储 数据建模 程序员
C 语言结构体 —— 数据封装的利器
C语言结构体是一种用户自定义的数据类型,用于将不同类型的数据组合在一起,形成一个整体。它支持数据封装,便于管理和传递复杂数据,是程序设计中的重要工具。
|
1月前
|
存储 编译器 数据处理
C 语言结构体与位域:高效数据组织与内存优化
C语言中的结构体与位域是实现高效数据组织和内存优化的重要工具。结构体允许将不同类型的数据组合成一个整体,而位域则进一步允许对结构体成员的位进行精细控制,以节省内存空间。两者结合使用,可在嵌入式系统等资源受限环境中发挥巨大作用。
62 11
|
3月前
|
存储 编译器 C语言
C语言存储类详解
在 C 语言中,存储类定义了变量的生命周期、作用域和可见性。主要包括:`auto`(默认存储类,块级作用域),`register`(建议存储在寄存器中,作用域同 `auto`,不可取地址),`static`(生命周期贯穿整个程序,局部静态变量在函数间保持值,全局静态变量限于本文件),`extern`(声明变量在其他文件中定义,允许跨文件访问)。此外,`typedef` 用于定义新数据类型名称,提升代码可读性。 示例代码展示了不同存储类变量的使用方式,通过两次调用 `function()` 函数,观察静态变量 `b` 的变化。合理选择存储类可以优化程序性能和内存使用。
170 82
|
2月前
|
存储 C语言 C++
深入C语言,发现多样的数据之枚举和联合体
深入C语言,发现多样的数据之枚举和联合体
深入C语言,发现多样的数据之枚举和联合体
|
2月前
|
存储 C语言
C语言中的浮点数存储:深入探讨
C语言中的浮点数存储:深入探讨
|
2月前
|
存储 C语言
深入C语言内存:数据在内存中的存储
深入C语言内存:数据在内存中的存储
|
2月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
|
3月前
|
存储 人工智能 C语言
数据结构基础详解(C语言): 栈的括号匹配(实战)与栈的表达式求值&&特殊矩阵的压缩存储
本文首先介绍了栈的应用之一——括号匹配,利用栈的特性实现左右括号的匹配检测。接着详细描述了南京理工大学的一道编程题,要求判断输入字符串中的括号是否正确匹配,并给出了完整的代码示例。此外,还探讨了栈在表达式求值中的应用,包括中缀、后缀和前缀表达式的转换与计算方法。最后,文章介绍了矩阵的压缩存储技术,涵盖对称矩阵、三角矩阵及稀疏矩阵的不同压缩存储策略,提高存储效率。
484 8