C语言中整型数据类型

ops/2025/2/18 21:55:04/

C语言中short、int、long int、long long int、unsigned short、unsigned int、unsigned long int、unsigned long long int数据类型的区别是什么?使用printf()函数如何打印它们?

数据类型区别

在 C 语言中,short、int、long int、long long int、unsigned short、unsigned int、unsigned long int、unsigned long long int 这些数据类型主要在表示范围和存储大小上存在区别,下面详细介绍:

有符号整数类型

short:通常占用 2 个字节(16 位),其取值范围一般是 -32768 到 32767(即 (-2^{15}) 到 (2^{15}-1))。
int:通常占用 4 个字节(32 位),取值范围一般是 -2147483648 到 2147483647(即 (-2^{31}) 到 (2^{31}-1))。不过在一些早期的 16 位系统中,int 可能只占 2 个字节。
**long int:**至少占用 4 个字节,在 32 位系统中通常是 4 个字节,在 64 位系统中通常是 8 个字节。取值范围至少是 -2147483648 到 2147483647(即 (-2^{31}) 到 (2^{31}-1))。
long long int:至少占用 8 个字节,取值范围一般是 -9223372036854775808 到 9223372036854775807(即 (-2^{63}) 到 (2^{63}-1))。

无符号整数类型

无符号整数类型只能表示非负整数,它们的取值范围从 0 开始。
**unsigned short:**通常占用 2 个字节(16 位),取值范围是 0 到 65535(即 (2^{16}-1))。
**unsigned int:**通常占用 4 个字节(32 位),取值范围是 0 到 4294967295(即 (2^{32}-1))。
**unsigned long int:**至少占用 4 个字节,在 32 位系统中通常是 4 个字节,在 64 位系统中通常是 8 个字节。取值范围至少是 0 到 4294967295(即 (2^{32}-1))。
**unsigned long long int:**至少占用 8 个字节,取值范围是 0 到 18446744073709551615(即 (2^{64}-1))。

使用 printf() 函数打印这些数据类型

printf() 函数使用格式说明符来指定要打印的数据类型,以下是各个数据类型对应的格式说明符及示例代码:

#include <stdio.h>
int main() 
{short s = 32767;int i = 2147483647;long int li = 2147483647L;long long int lli = 9223372036854775807LL;unsigned short us = 65535;unsigned int ui = 4294967295U;unsigned long int uli = 4294967295UL;unsigned long long int ulli = 18446744073709551615ULL;// 打印有符号整数类型printf("short: %hd\n", s);printf("int: %d\n", i);printf("long int: %ld\n", li);printf("long long int: %lld\n", lli);// 打印无符号整数类型printf("unsigned short: %hu\n", us);printf("unsigned int: %u\n", ui);printf("unsigned long int: %lu\n", uli);printf("unsigned long long int: %llu\n", ulli);return 0;
}

格式说明符解释

%hd:用于打印 short 类型的有符号整数。
%d:用于打印 int 类型的有符号整数。
%ld:用于打印 long int 类型的有符号整数。
%lld:用于打印 long long int 类型的有符号整数。
%hu:用于打印 unsigned short 类型的无符号整数。
%u:用于打印 unsigned int 类型的无符号整数。
%lu:用于打印 unsigned long int 类型的无符号整数。
%llu:用于打印 unsigned long long int 类型的无符号整数。
需要注意的是,在初始化 long int、long long int、unsigned long int 和 unsigned long long int 类型的变量时,建议使用后缀 L、LL、UL 和 ULL 来明确指定类型,避免潜在的类型转换问题。


http://www.ppmy.cn/ops/158232.html

相关文章

Node.js中的npm包:从入门到实践指南

目录 一、npm的核心概念 二、npm核心命令与工作流 三、package.json深度解析 四、高级技巧与最佳实践 五、常见问题解决方案 六、未来趋势 在Node.js生态中&#xff0c;npm&#xff08;Node Package Manager&#xff09; 是开发者不可或缺的工具。它不仅是全球最大的开源软…

深度学习每周学习总结R6(RNN实现阿尔茨海默病诊断)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客R8中的内容&#xff0c;为了便于自己整理总结起名为R6&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 目录 0. 总结1. 数据集介绍2. 数据预处理3. 模型构建4. 初始化模型及优化器5. 训练函…

双向链表代码

在介绍双向链表之前&#xff0c;先介绍一下链表的分类&#xff1a; 实际中链表的结构非常多样&#xff0c;以下情况组合起来就有8种链表结构&#xff1a; 单向或者双向&#xff1a; 带头或者不带头&#xff1a; 循环或者非循环&#xff1a; 看到有这么多的结构&#xff0c;你…

顺序表(C)

1.顺序表的概念 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;通常借助数组来实现。它的特点是逻辑上相邻的元素在物理存储位置上也相邻&#xff0c;支持随机访问&#xff0c;可通过下标直接访问任意位置的元素。不过&#xff0c;顺序表在插入和…

pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar

个人博客地址&#xff1a;pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar | 一张假钞的真实世界 Maven编译时无法自动下载pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar&#xff0c;需要手动下载并安装到本地仓库。安装命令&#xff1a; mvn install:install-file -Dfile.…

react 创建项目报错(react19)详细解决办法

一、问题描述 使用脚手架创建项目的时候报错如下&#xff1a; 二、原因及解决办法 打开项目查看 package.json 文件发现&#xff0c;使用的是最新的19版本&#xff0c;所以会出现版本不兼容的问题 所以我们需要换成18版本的 1、删除node_modules文件夹 2、package.json 中替…

java后端开发day14--之前练习的总结和思考

1.感受 这两天学点儿新的就直接上手打代码&#xff0c;真的是累死个人。我唯一的感受就是&#xff0c;课听完了&#xff0c;代码也跟着打完了&#xff08;是的&#xff0c;跟着打的&#xff0c;没自己打&#xff09;&#xff0c;感觉自己脑袋里乱乱的&#xff0c;对代码的分区…

AI向量数据库之LanceDB快速介绍

LanceDB LanceDB 是一个开源的向量搜索数据库&#xff0c;具备持久化存储功能&#xff0c;极大地简化了嵌入向量的检索、过滤和管理。 LanceDB的主要特点 LanceDB 的主要特点包括&#xff1a; 生产级向量搜索&#xff1a;无需管理服务器。 存储、查询和过滤向量、元数据以…