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

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

一 字符型:

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

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

二 整数类型:

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

整数类型存储大小值范围
int 4 字节-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
unsigned int4字节0 到 65,535 或 0 到 4,294,967,295
short2 字节-32,768 到 32,767
unsigned short2 字节0 到 65,535
long8字节-2,147,483,648 到 2,147,483,647
unsigned long8字节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。

三浮点型:

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

浮点类型存储大小值范围精度
float4 字节1.2E-38 到 3.4E+386 位有效位
double8 字节2.3E-308 到 1.7E+30815 位有效位
long double16 字节3.4E-4932 到 1.1E+493219 位有效位

四 布尔类型:

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/544187.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Web】记录CISCN2023国赛初赛DeserBug题目复现

目录 前言 分析 step0 step1 step2 EXP 总结 前言 Hessian的链子审得有点疲劳&#xff0c;不如做做题吧&#xff0c;挑了国赛入手&#xff0c;整体做下来感觉十分丝滑&水到渠成&#xff0c;自然&通透。 仅仅是记录一下菜鸡做题的感受&#xff0c;不会往深入了…

基于springboot实现房源出租信息系统项目【项目源码+论文说明】

基于springboot实现房源出租信息系统演示 摘要 近些年来在一线城市的房子需求量在逐步递增&#xff0c;其中租房子和出租房子的需求业务不断增加。那么租房对于我们一线二线城市来说是一个非常大&#xff0c;而且具有经济提升能力的业务场景。那么信息技术在此行业的加持早已是…

mac电脑修改终端zsh显示的用户名

电脑名称一直没有修改&#xff0c;所以电脑名称都是Apple的MacBook Pro&#xff0c;如下图所示&#xff1a; mac电脑终端显示用户名太长一点也不美观&#xff0c;而且占用很长的行&#xff0c;浪费空间&#xff0c;可以通过修改来调整要显示什么内容&#xff1a; 方式一 要想换…

6.【Linux】进程间通信(管道命名管道||简易进程池||简易客户端服务端通信)

介绍 进程间通信的方式 1.Linux原生支持的管道----匿名和命名管道 2.System V-----共享内存、消息队列、信号量 3.Posix------多线程、网路通信 进程间通信目的 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程 资源共享&#xff1a;多个进程之间共享同样的资源。…

【网络编程基础(一)】网络基础和SOCKET

这里写目录标题 1、网络三要素2、IPV4和IPV6区别3、网络交互3.1、交互模型图3.2、基础通信协议3.3、OSI参考模型与TCP/IP参考模型对应关系 4、SOCKET网络套接字4.1、SOCKET分类4.2、基于流式套接字的编程流程4.3、网络通信雏形4.4、socket函数4.4.1、socket函数示例 4.5、bind函…

外包干了3天,技术明显进步。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入南京某软件公司&#xff0c;干了接近2年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…

Pyqt5中,QGroupBox组件标题字样(标题和内容样式分开设置)相对于解除继承

Python代码示例&#xff1a; import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QGroupBox, QLabelclass MyApp(QWidget):def __init__(self):super().__init__()# 创建一个 QVBoxLayout 实例layout QVBoxLayout()# 创建 QGroupBox 实例self.grou…

从政府工作报告探计算机行业发展——探索计算机行业发展蓝图

目录 前言 一、政策导向与行业发展 &#xff08;一&#xff09;政策导向的影响 &#xff08;二&#xff09;企业如何把握政策机遇推动创新发展 二、技术创新与产业升级 三、数字经济与数字化转型 四、国际合作与竞争态势 五、行业人才培养与科技创新 &#xff08;一&a…

HM2019碰撞安全之假人定位

1、调整假人的位置&#xff08;Tools→Dummy&#xff09; 2、对假人的姿态进行调整 方法一&#xff1a;手动调整 方法二&#xff1a;自动调整 3、假人姿态调整后&#xff0c;还可以对假人目前的姿态保存。 4、将假人恢复到最初状态方法 5、将假人与座椅相关联&#xff08;Tool…

多站合一的音乐搜索下载助手PHP源码l亲测

源码获取方式 回复&#xff1a;031601 搭建教程&#xff1a; 将源码下载上传至宝塔面板&#xff0c;直接运行即可~ 说明&#xff1a; 该源码进行测试&#xff0c;测试成功源码无加密优化相关其他采集问题。

深度强化学习(七)策略梯度

深度强化学习(七)策略梯度 策略学习的目的是通过求解一个优化问题&#xff0c;学出最优策略函数或它的近似函数&#xff08;比如策略网络&#xff09; 一.策略网络 假设动作空间是离散的,&#xff0c;比如 A { 左 , 右 , 上 } \cal A\{左,右,上\} A{左,右,上}&#xff0c;策…

双向SSM: Vision Mamba Encoder

文章目录 Vision Mamba Encoder初始化输入映射序列变换参数映射BC参数映射delta参数映射 SSM参数初始化A , D矩阵初始化delta参数初始化 双向SSM初始化参数初始化 前向输入映射fast_pathuse_fast_pathno use_fast_path 双向SSMv1前向后向 v2前向后向 Vision Mamba Encoder Vis…