数据与C(整数存储的各种类型)

news2024/11/22 23:19:58

目录

一.int(%d)

1.sizeof应用

2.声明int变量以及初始化

3.打印int值

二.short(%hd)和long(%ld)

1.short大小

2.long大小

3.short和long的分支

三.综合讲解

四.整数类型总结

五.可移植类型: stdint.h 和 inttypes.h

在上一节当中我们讲解了C语言数据的存储类型基本大类就是整数和浮点数,所以在这一章当中我们就要开始讲解不同字节大小的整数存储,而把整数类型的大类分为图如下,其实还是以sort,int,long还有一个unsigned,无符号整数。其他的都是在这四个基础上进行扩展。

一.int(%d)

1.概念介绍

int类型基本会成为你的日后编程所用到最多的整型类型。

Int 类型是有符号整数(signed int),既int类型的值必须是整数,可以是正整数,负整数或零。存储一个int要占用一个计算机字长。因此在早起16位IBM PC 兼容机使用16位来存储一个int 值,目前我们个人计算机一般都是32位的,因此一般都用32位来存储一个int值。

像我的电脑就是32位的,占用4个字节。

1.sizeof应用

sizeof函数接受一个类型,返回一个类型所占大小,使用%zd,如果zd不行其实用%d也可以(但编译器会警告不报错),用%lu(unsigned long int)也可以(也只是警告不报错)。

2.声明int变量以及初始化

变量声明可以单独声明或多条声明,就是声明多条变量是要用逗号分隔,我这里就一下声明了erns,cows,goats三个变量,同时为goats变量初始化了一个1值。

像1这样值我们一般称为整型常量或整型字面量

这里需要特别知道一个概念。

声明变量 == 只创建内存空间不赋值(会产生垃圾值)

而初始化变量 == 创建内存空间后再为其赋值

3.打印int值

打印int类型的数据,使用%d占位符

这里要记住占位符类型必须和变量存储的数据类型匹配以及数量一直,不然容易引起计算机报错

二.short(%hd)和long(%ld)

1.short大小

Short 其实就是signed short int,光看名字我们大概就知道short所存储的数和占用空间要比int小。

但其实官方的定义是,short <= int;是可以和int一样的。我们这里用sizeof测试下具体字节。

我们可以看到short字节占用只有int的一半。为两个字节

2.long大小

而long是signed long int的缩写。官方定义为long >= int;同样的我们也用sizeof测试看下。

这里可以看到在我所使用的编译器中,long和int所占用的字节大小是一样的。

3.short和long的分支

short int(简写short):占用的存储空间比int类型少,常用于较小数值的场合以节省空间

long int(long):占用的存储空间比int类型多,多适用于较大数值的场合

long long int(long long):占用的存储空间比long多,适用于大数据的场合(一般占用64位)

unsigned int(unsigned) :用于非负值的场合

在c90标准中,又添加了 unsigned long int(unsigend long) 和 unsigned short int(unsigned short)。C99标准中又添加了unsigned long long int(unsigned long long)

在任何有符号类型前面添加关键字 signed,可强调使用有符号类型的意图,如short,short int,signed short ,signed short int 都表示同一种类型

在一般个人计算机最常见的设置是: long long 占64位,long 占32位,short 占16位,int 占16位或32位

三.综合讲解

首先我们先来看

红色第一行,对于无符号变量un,使用%d会生成赋值,主要愿意是无符号值3000000000和有符号值-129496296在系统内存中的内部表达完全相同。这种情况只会出现爱待打印的无符号值大于有符号值的最大值时,会发生这种情况,对于较小的正数,有符号和无符号类型的存储,显示都相同.

绿色第二行,打印short类型用%hd或%d打印的值都相同,这主要是因为在给函数传递参数时,c编译器把short类型的值自动转换成int类型的值。(转换的主要原因时int类型被认为时计算机处理整数类型时最高效的类型,因此在short和int类型的大小不同的计算机中,用int类型的参数传递速度最快)

蓝色第三行,把65537以二进制格式写成一个32位数时 0…0(15个零)1 0…0(15个零)。而使用%hdprintf()只会查看16位,也就是1

而白色第四行,和第三行原理一样,%lld 用64位,%ld用32位

 

四.整数类型总结

对于整数类型的知识点大家重点理解int基本就够了,然后short和long以后需求用的上大家在重点应用。

 

 

五.可移植类型: stdint.h 和 inttypes.h

为了解决类型名在不同系统的功能不一样.c99新增加了两个头文件stdint.h和inttypes.h,以确保烈性在各系统的功能相同,这块仅作了解,一时不了解也没事,以后要用到的就会明白了

 

精确宽度整数类型:  int32_t表示整数类型的宽度正好是32位,啥意思呢,就是int32_t表示32位的有符号整型类别,然后有些计算机int 类型是32位,而有些是long类型,为了方面移植,所以可以用int32_t代替,因为它在int为32位的系统中就是int的别名,在long为32位的系统中就是long的别名

 

最小宽度类型:一些类型名保证所表示的类型一定是只有有指定宽度的最小整数类型。比如int_least8_t可容纳8位有符号整数值的类型中狂赌最小类型的别名

 

最快最小宽度类型:可是计算机达到最快的类型集合。比如int_fast8_t被定义为系统中对8位有符号值而言运算最快的整数类型的别名

 

顺带在说两个特别的类型名,intmax_t可存储任何有效的有符号整数值,.uintmax_t 表示最大的无符号整数类型

 

 

而针对要打印int32_t这类型的值,可以使用%d或%ld,但inttypes.h提供l1一个PRID32字符宏来进行合适转换,在使用是用

 

这里主要主要下两张图红色括号,在使用PRID32时,因为它是一个字符宏(相当于就是d),所以在做打印时记得把PRId32和%分开就好了


好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~

如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

年轻人越来越反感“专家”,问题出在哪儿?

专家的建议&#xff0c;又惹怒了年轻人。 最近&#xff0c;某学者表示&#xff0c;在鼓励年轻人生育、婚恋的问题上&#xff0c;可以将法定结婚年龄下调至18岁&#xff0c;以此降低成婚门槛促进单身男女建立家庭。 此话一出&#xff0c;立刻引来无数板砖。不少人质疑&#xf…

CrossOver2023mac跨系统互通切换win虚拟机

CrossOver2023版是在Mac上运行Win软件的最简单方法&#xff0c;有了它&#xff0c;你无须 Win许可、重新启动或使用虚拟机即可在mac上使用Win软件。CrossOver23可以轻松地从Dock本地启动Win程序。CrossOver版还集成了macOS 功能&#xff0c;例如跨平台复制和粘贴&#xff0c;以…

数据与C(ASCII码,char)

目录 一.ASCII码讲解 二.非打印字符&#xff08;转义字符&#xff09; 三.扩展小知识 一.ASCII码讲解 char类型用于存储字符&#xff0c;从技术层面看&#xff0c;char时整数类型&#xff0c;因为char类型实际上存储的是整数而不是字符。计算机使用数字编码来处理字符&…

javaEE 初阶 — 超时重传机制

文章目录超时重传机制1. 数据重复传输问题2. 如何解决数据重复传输问题3. 重传次数问题TCP 的工作机制&#xff1a;确认应答机制 超时重传机制 如果传输数据的时候丢包了该怎么办&#xff1f; 利用 超时重传&#xff0c;也就是超过了一定的时间&#xff0c;如果还没响应就重新…

回顾 | 开学季(一)- 在 Windows / macOS 上配置你的开发环境

点击蓝字关注我们编辑&#xff1a;Alan Wang排版&#xff1a;Rani Sun微软 Reactor 为帮助广开发者&#xff0c;技术爱好者&#xff0c;更好的学习 .NET Core, C#, Python&#xff0c;数据科学&#xff0c;机器学习&#xff0c;AI&#xff0c;区块链, IoT 等技术&#xff0c;将…

社交登陆OAuth2.0

QQ、微博、github 等网站的用户量非常大&#xff0c;别的网站为了 简化自我网站的登陆与注册逻辑&#xff0c;引入社交登陆功能&#xff1b; 步骤&#xff1a; 1&#xff09;、用户点击 QQ 按钮 2&#xff09;、引导跳转到 QQ 授权页 3&#xff09;、用户主动点击授权&#xff…

Linux 服务器(centos7)搭建 Web 版 VSCode

首先到code-server的git地址找到下载链接 打开https://github.com/cdr/code-server/releases&#xff0c;选择一个版本下载&#xff0c;我选择的是code-server-4.9.1-linux-amd64.tar.gz&#xff0c;这是 64 位 Linux 的通用版。 下载压缩包到服务器并解压 cd /home mkdir v…

Python-第四天 Python循环语句

Python-第四天 Python循环语句一、while循环1.while循环的基础语法2.while循环的基础案例3.while循环的嵌套应用4.while循环的嵌套案例二、for循环1.for循环的基础语法1.1基础语法1.2 range语句2.for循环的嵌套应用三、循环中断 : break和continue1.continue2.break四、 综合案…

nginx相关反爬策略总结笔记

引言 互联网站点的流量一部分由人类正常访问行为产生&#xff0c;而高达30%-60%的流量则是由网络爬虫产生的&#xff0c;其中一部分包含友好网络爬虫&#xff0c;如搜索引擎的爬虫、广告程序、第三方合作伙伴程序、Robots协议友好程序等;而并非所有的网络爬虫都是友好的&#x…

【C#项目】图书馆管理系统-WinForm+MySQL

文章目录前言一、业务梳理与需求分析1.功能描述2.实现步骤3.功能逻辑图二、数据库设计1.实体-关系&#xff08;E-R图&#xff09;概念模型设计2.数据表设计三、WinForm界面交互设计1、界面交互逻辑2、项目树3、主界面登录界面4、 图书查询界面5、图书借阅界面6、图书插入界面7、…

pixhawk2.4.8-地面站配置-APM固件

目录一、硬件准备二、APM固件、MP地面站下载三、地面站配置1 刷固件2 机架选择3 加速度计校准4 指南针校准5 遥控器校准6 飞行模式7 紧急断电&无头模式8 基础参数设置9 电流计校准10 电调校准11 起飞前检查&#xff08;每一项都非常重要&#xff09;12 飞行经验四、遇到的问…

10.数据库恢复技术

其他章节here 梳理 名词解释 事务&#xff1a;事务是用户定义的 一个数据操作序列&#xff0c;这些操作要么全做&#xff0c;要么全不做&#xff0c;是一个不可分割的工作单位 事务≠程序 事务是恢复和并发控制的基本单位 &#xff08;事务时数据库应用程序的基本逻辑单元&am…

制造业升级转型:制造业上市公司-智能制造词频统计数据集

发展智能制造&#xff0c;关乎中国制造业转型升级的成效。基于中国制造业上市公司年报&#xff0c;通过文本数据挖掘&#xff0c;提取关键词反映企业对智能制造的关切焦点&#xff0c;进而运用词频及共词网络分析&#xff0c;洞察中国智能制造的发展态势。 研究发现&#xff0…

OpenAI最重要的模型【CLIP】

最近的 AI 突破 DALLE和 Stable Diffusion有什么共同点&#xff1f; 它们都使用 CLIP 架构的组件。 因此&#xff0c;如果你想掌握这些模型是如何工作的&#xff0c;了解 CLIP 是先决条件。 此外&#xff0c;CLIP 已被用于在 Unsplash 上索引照片。 但是 CLIP 做了什么&…

若依框架---为什么把添加和更新分成两个接口

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是小童&#xff0c;Java开发工程师&#xff0c;CSDN博客博主&#xff0c;Java领域新星创作者 &#x1f4d5;系列专栏&#xff1a;前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…

SpringCloud-Netflix学习笔记11——Hystrix实现服务降级

服务降级 是什么&#xff1f; 整体资源快不够了&#xff0c;忍痛将某些服务先关掉&#xff0c;待渡过难关&#xff0c;再开启回来。 如下图&#xff0c;在某一个时间段&#xff0c;访问服务A的请求特别多&#xff0c;而访问服务B和服务C的请求特别少&#xff0c;这时我们可以把…

实战打靶集锦-004-My-Cmsms

**写在前面&#xff1a;**记录一次艰难曲折的打靶经历。 目录1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查4.1 WEB服务探查4.1.1 浏览器访问4.1.2 目录枚举4.1.3 控制台探查4.1.4 其他目录探查4.2 阶段小结5. 公共EXP搜索5.1 CMS搜索5.2 Apache搜索5.3 PHP搜索5.4 MySQL搜索5…

DaVinci:色度 - 亮度网格

调色页面&#xff1a;色彩扭曲器 Color&#xff1a;Color Warper相对于色相 - 饱和度网格&#xff0c;色度 - 亮度 Chroma - Luma网格在颜色的亮度控制上更加灵活。◆ ◆ ◆工作原理分析色度 - 亮度网格来自色彩空间三维模型中圆柱体垂直切分的两个 90 交叉的纵向平面。网格上…

介绍架构分类、设计及架构师工作

title: 介绍架构分类、设计及架构师工作 date: 2019-06-07 13:49:00 tags: 架构分类架构设计功能设计架构师 categories:架构 介绍 本文从理论上分析、梳理架构相关知识&#xff0c;帮助自己更好的理解架构工作。 什么是架构和架构分类 什么是架构 关于架构的定义业界有太多…

致敬白衣天使,学习Python读取

名字&#xff1a;阿玥的小东东 学习&#xff1a;Python、c 主页&#xff1a;阿玥的小东东 故事设定&#xff1a;现在学校要求对所有同学进行核酸采集&#xff0c;每位同学先在宿舍内等候防护人员&#xff08;以下简称“大白”&#xff09;叫号&#xff0c;叫到自己时去停车场排…