C语言中,基本数据类型介绍

C语言当中各种数据类型的大小,首先要了解有哪些数据类型。

一 字符型:

整数(字符)类型 存储大小 值范围
char 1 字节 -128 到 127 或 0 到 255(2的8次方)
unsigned char 1 字节 0 到 255()
signed char 1 字节 -128 到 127()

对于字符而言,本质上还是数字,只不过存放的是字符的ASCII码值,根据ASCII码表显示字符。

二 整数类型:

在64位系统的编译环境下:

整数类型 存储大小 值范围
int  4 字节 -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
unsigned int 4字节 0 到 65,535 或 0 到 4,294,967,295
short 2 字节 -32,768 到 32,767
unsigned short 2 字节 0 到 65,535
long 8字节 -2,147,483,648 到 2,147,483,647
unsigned long 8字节 0 到 4,294,967,295

知识补充 :

有符号整数(signed)

有符号整数通常采用二进制补码形式来表示。补码表示法允许我们使用一个固定数量的位(bit)来表示正数、负数和零。补码表示法的关键之处在于它使得加法运算在包括负数的情况下也能保持简单性。

对于有符号整数

  • 最高位(最左边的位) 是符号位。0表示正数或零,1表示负数。
  • 剩下的位用于表示整数的数值部分(或称为幅度)。
补码计算
  • 正数的补码就是其本身。
  • 负数的补码是其绝对值的二进制表示(原码)取反后加一。

例如,一个8位的有符号整数:

  • +5 的原码、反码和补码都是 0000 0101
  • -5 的原码是 1000 0101,反码是 1111 1010,补码是 1111 1011

无符号整数(unsigned)

无符号整数则直接使用所有位来表示整数的数值部分,没有符号位。因此,无符号整数的范围是从0到2^n-1,其中n是整数的位数。

例如,一个8位的无符号整数可以表示的范围是0到255(即0000 0000到1111 1111)。

存储和解释

在内存中,有符号和无符号整数都是以二进制的形式存储的。它们之间的区别主要在于我们如何解释这些二进制位。当我们读取一个整数值时,如果我们将其解释为有符号的,那么计算机会使用补码规则来解释最高位作为符号位;如果我们将其解释为无符号的,那么计算机会将所有位都视为数值部分。

示例

假设我们有一个8位的二进制数 1000 0001

  • 如果我们将其解释为有符号整数,那么它表示的是-127(这是-1的补码表示)。
  • 如果我们将其解释为无符号整数,那么它表示的是129。

三浮点型:

不同的浮点型,我们往往不需要那么高的精度去存储,有时候常常约束小数部位。

浮点类型 存储大小 值范围 精度
float 4 字节 1.2E-38 到 3.4E+38 6 位有效位
double 8 字节 2.3E-308 到 1.7E+308 15 位有效位
long double 16 字节 3.4E-4932 到 1.1E+4932 19 位有效位

四 布尔类型:

在C语言标准中,并没有直接定义布尔(boolean)类型。然而,从C99标准开始,C语言引入了一个头文件 <stdbool.h>,该头文件定义了布尔类型以及两个宏:true 和 false

所以要使用布尔类型 ,必须包含头文件<stdbool.h>

当你包含 <stdbool.h> 头文件后,你可以使用 bool 作为布尔类型,由于布尔类型大小只有一个bit位,只能表示0和1,所以我们往往用它表示真假或者表示对错。对于单片机当中常常用于

true (1)和 false(0) 作为布尔值。这使得可以调用函数的时候可以判断程序执行有无问题。

整数类型 存储大小 值范围
bool  1 bit true (1), false(0)

对于结构体由于计算内存大小比较特殊,我单独写在自定义数据类型当中。

相关推荐

  1. C语言一些基本数据类型的典型大小

    2024-03-17 14:52:01       32 阅读
  2. c语言-数据类型详细介绍

    2024-03-17 14:52:01       43 阅读
  3. golang基础数据类型介绍

    2024-03-17 14:52:01       38 阅读
  4. C语言自定义数据类型

    2024-03-17 14:52:01       25 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-17 14:52:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-17 14:52:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-17 14:52:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-17 14:52:01       20 阅读

热门阅读

  1. mysql报错日志查看

    2024-03-17 14:52:01       24 阅读
  2. Synchronized关键字的底层原理

    2024-03-17 14:52:01       17 阅读
  3. 令牌桶算法和漏桶算法

    2024-03-17 14:52:01       13 阅读
  4. 【Docker】Prometheus 容器部署及应用

    2024-03-17 14:52:01       23 阅读
  5. 华为机试真题练习汇总(51~60)

    2024-03-17 14:52:01       18 阅读
  6. c++算法学习笔记 (7) BFS

    2024-03-17 14:52:01       18 阅读
  7. redis配置文件详情

    2024-03-17 14:52:01       21 阅读
  8. Lambda表达式

    2024-03-17 14:52:01       15 阅读
  9. CSS中px、em、rem的区别及使用场景

    2024-03-17 14:52:01       20 阅读
  10. CSS 面试题及答案

    2024-03-17 14:52:01       17 阅读
  11. 安卓UI面试题 56-60

    2024-03-17 14:52:01       23 阅读
  12. Android启动优化

    2024-03-17 14:52:01       19 阅读