3、C语言基本数据类型关键字

本章学习目标:

        1、认识存储单位:位bit和字节Byte

        2、根据不同的应用场景选择符合需求的数据类型关键字,了解关键字的表示数据范围

1、内存单位

一、位

内存中的数据无论是文本、图像、音频还是视频,都是以位的形式进行存储的。

位是二进制数字系统中的一个基本单位,只能表示两种状态,即0或1。

内存单位中的“位”,也被称为“比特”(bit),是计算机存储和处理信息的最小单位。

二、字节

字节是常用的计算机存储单位,它由8个位组成。

除了字节外,还有更大的存储单位,如千字节(KB)、兆字节(MB)、吉字节(GB)、太字节(TB)等。

内存单位换算关系如下:

        1字节 == 8位

        1KB = 1024B      (1024==2^10)

        1MB = 1024KB

        1GB = 1024MB

        1TB = 1024GB

2、基本数据类型关键字

程序最终都是运行在在内存中的,因此学写代码首先要先学如何将数据放入到内存中如何将数据从内存中读取出来

按照实现中最常用的数据分类:整数  小数  字母 

C语言将最基本的数据类型分为: 整型 、 实型 、 字符型 ,并且规定了一些特殊的单词来说明数据类型,即关键字

   一、整型     

        存储整数,比如:10  、   45   、   2000......

        因为整数有大有小,为了节约内存,C语言将整型又分为:短整型、整型、长整型、长长整型,方便程序员使用大数据用大空间,小数据用小空间。      

分类短整型整型长整型长长整型
关键字shortintlonglong long
格式控制符%hd%d%ld%lld
字节数244/88

         注意:使用的时候自己按照自己的类型使用,不然可能出现一些异常的情况,如果不想记太多,只记int也可以。

        接下来我们来讨论下数据类型的存储情况:

                计算机里面存储数据除了数据类型外,还要考虑有无符号。                

                signed 与 unsigned:有符号与无符号    修饰基本数据类型

                signed   修饰的数据类型可以描述正数也可以描述负数

                unsigned 修饰的数据类型只能描述正数

        

                例子:

                        signed int a;     有符号  可以存正整数和负整数 - 默认有符号,也可以直接写 int a;

                        unsigned int a;   无符号  只能存正整数

       

         以short为例讨论这种数据类型的范围:

                有符号:signed short 、short (signed默认是可以省略)

                        2个字节 == 16位

                        最高位:0表是正,1表示负

                       short正数范围:

                        0 000 0000 0000 0000 -- 0

                        0 111 1111 1111 1111 -- 32767

                       

                       short负数范围:

                        1 000 0000 0000 0000 -- -0

                        1 111 1111 1111 1111 -- -32767

                        没有-0的表达向负方向扩展1为变成 - 32768

                        1 000 0000 0000 0000 -- -32768

                        

                        short的范围:-32768~32767

                无符号:unsigned short

                        没有符号位:2个字节 == 16位                        

                        0000 0000 0000 0000 --- 0

                        1111 1111 1111 1111 --- 65535

                

                        unsigned short的范围:0 ~ 65535

                数据范围总结

                long:只有在linux的64为下面是8个字节,其他都是4个字节

 shortintlonglong long
-32768~32767-21亿~21亿-------18位10进制数~+18位10进制数
unsigned shortunsigned intunsigned longunsigned long long
0~655350~42亿------0 ~ 19位10进制数

       总结:

                关键字的选取,需要考虑:                

                       具体描述的是什么数据

                        空间存储情况(有无符号  占用字节大小)

                        十进制形式取值范围

 

 二、实型     

存储小数,比如:3.5  、   56.7   、   60.0 ......

分类单精度双精度
关键字floatdouble
格式控制符%f%lf
字节数48
小数点后的保留位数6~8位

15~16位

三、字符型    

存储单个字符,比如:'a'  、   '+'   、   ')' ......

注意:C语言里面严格区分 字符和字符串,字符为单个,用单引号''包含;字符串为多个字符,用""包含。

分类字符型
关键字char
格式控制符%c 或者 %d
字节数1

C语言存储字符是按照ASCII码表存储的,1个字符对应1个数字,因此存储字符实质上是存储了一个数字,因此字符可以当做整型数字使用。

        

char类型占据1个字节 == 8位,因此unsigned char的范围为:0 ~ 255;char类型的范围为:-128~127.

C语言不同的类型在内存中的存储方式是不一样的,因此在存取数据之前先要思考如何选择基本数据类型关键字。

3、基本数据类型关键字练习

1、说出数据的存储应该使用什么关键字:

        a、存储班级人数

        b、存储中国人数

        c、存储世界人数

        d、存储楼层

        e、存储图书价格 

        f、存储身高体重

        g、存储用户输入的当前贪吃蛇游戏的方向按键(wasd),每次只能接受一个方向字符

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

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

相关文章

Mac os 系统上如何开启远程登录的 ssh 22 端口

macOS 允许使用 SSH 连接,但为了安全起见,需要手动启动 SSH 服务,有两种方法可以激活远程登录。 方法一:界面化操作 1. 打开“系统偏好设置”,点击屏幕左上角的 Apple 图标,然后选择 系统偏好设置。 2. …

利用Python爬虫获取淘宝店铺详情

在数字化时代,数据已成为企业最宝贵的资产之一。对于电商平台,尤其是淘宝这样的大型电商平台,店铺详情数据的获取和分析对于商家来说至关重要。它不仅可以帮助商家了解市场趋势,还可以优化营销策略,提升销售业绩。本文…

RabbitMQ教程:发布/订阅模式(Publish/Subscribe)(三)

文章目录 RabbitMQ教程:发布/订阅模式(Publish/Subscribe)(三)一、引言二、简介三、准备工作3.1 说明3.2 生成项目 四、实战4.1 交换机(Exchanges)4.2 临时队列(Temporary Queues&am…

对PolyMarket的突袭

一天清晨六点,美国联邦调查局的探员冲进了纽约市的一间公寓。这间公寓的主人是26岁的Shane Copeland,一个有着凌乱头发的年轻人,也是一个加密货币狂热者。他运营着一个名为PolyMarket的网站——一个允许用户YZ全球事件结果的平台,…

DataStream编程模型之数据源、数据转换、数据输出

Flink之DataStream数据源、数据转换、数据输出(scala) 0.前言–数据源 在进行数据转换之前,需要进行数据读取。 数据读取分为4大部分: (1)内置数据源; 又分为文件数据源; socket…

Django5 2024全栈开发指南(三):数据库模型与ORM操作

目录 一、模型的定义二、数据迁移三、数据表关系四、数据表操作4.1 Shell工具4.2 数据新增4.3 数据修改4.4 数据删除4.5 数据查询4.6 多表查询4.7 执行SQL语句4.8 数据库事务 Django 对各种数据库提供了很好的支持,包括 PostgreSQL、MySQL、SQLite 和 Oracle&#x…

ASP.NET Core Webapi 返回数据的三种方式

ASP.NET Core为Web API控制器方法返回类型提供了如下几个选择&#xff1a; Specific type IActionResult ActionResult<T> 1. 返回指定类型&#xff08;Specific type&#xff09; 最简单的API会返回原生的或者复杂的数据类型&#xff08;比如&#xff0c;string 或者…

网关在能源物联网中扮演了什么角色?

随着通信、物联网、云平台等技术的飞速发展&#xff0c;越来越多能源用户希望借助先进的管理手段&#xff0c;对能源进行分布式监测、集中管理&#xff0c;构建能源物联网。准确的分布式监测和集中管理有助于制定更科学合理的节能减排计划。企业或能源使用单位可以依据能源物联…

【快速入门】前端御三家:HTML、CSS和JS

HTML HTML&#xff0c;超文本标记语言&#xff0c;可以理解成骨架&#xff0c;是一个基础的东西。 一.基础结构 如图所示&#xff1a; 二.常见标签 1.标题标签 在页面上定义标题性的内容 <h1>一级标题</h1> <h2>二级标题</h2> <h3>三级标…

WebSocket实战,后台修改订单状态,前台实现数据变更,提供前端和后端多种语言

案例场景&#xff1a; 在实际的后台中需要变更某个订单的状态&#xff0c;在官网中不刷新页面&#xff0c;可以自动更新状态 在前端页面实现订单状态的实时更新&#xff08;不刷新页面&#xff09;&#xff0c;可以通过 WebSocket 的方式与后台保持通信&#xff0c;监听订单状态…

Django5 2024全栈开发指南(二):Django项目配置详解

目录 一、基本配置信息二、资源文件配置2.1 资源路由——STATIC_URL2.2 资源集合——STATICFILES_DIRS2.3 资源部署——STATIC_ROOT2.2.4 媒体资源——MEDIA 三、模板配置四、数据库配置4.1 mysqlclient连接MySQL4.2 pymysql连接MySQL4.3 多个数据库的连接方式4.4 使用配置文件…

近几年新笔记本重装系统方法及一些注意事项

新笔记本怎么重装系统&#xff1f; 近几年的新笔记本默认开启了raid on模式或vmd选项&#xff0c;安装过程中会遇到问题&#xff0c;新笔记本电脑重装自带的系统建议采用u盘方式安装&#xff0c;默认新笔记本有bitlocker加密机制&#xff0c;如果采用一键重装系统或硬盘方式安装…

黑马智数Day10

项目背景说明 后台管理部分使用的技术栈是Vue2&#xff0c;前台可视化部分使用的技术栈是Vue3 前台可视化项目不是独立存在&#xff0c;而是和后台管理项目共享同一个登录页面 微前端的好处 微前端是一种前端架构模式&#xff0c;它将大型单体应用程序分解为小的、松散耦合的…

Visual Studio 圈复杂度评估

VisualStudio自带的有工具 之后就可以看到分析结果

prop校验,prop和data区别

prop:组件上注册的一些自定义属性 prop作用&#xff1a;向子组件传递数据 特点&#xff1a; 可以传递任意数量&#xff0c;任意类型的prop 父组件 &#xff08;一个个地传递比较麻烦&#xff0c;可以直接打包成一个对象传过去&#xff0c;然后通过点属性接收&#xff09; <t…

ubuntu显示管理器_显示导航栏

ubuntu文件管理器_显示导航栏 一、原始状态&#xff1a; 二、显示导航栏状态&#xff1a; 三、原始状态--->导航栏状态: 1、打开dconf编辑器&#xff0c;直接在搜索栏搜索 dconf-editor ------如果没有安装&#xff0c;直接按流程安装即可。 2、进入目录&#xff1a;org …

跨平台WPF框架Avalonia教程 一

安装 安装 Avalonia UI 模板​ 开始使用 Avalonia 的最佳方式是使用模板创建一个应用程序。 要安装 Avalonia 模板&#xff0c;请运行以下命令&#xff1a; dotnet new install Avalonia.Templates 备注 对于 .NET 6.0 及更早版本&#xff0c;请将 install 替换为 --inst…

UE5 材质里面画圆锯齿严重的问题

直接这么画圆会带来锯齿&#xff0c;我们对锯齿位置进行模糊 可以用smoothstep&#xff0c;做值的平滑过渡&#xff08;虽然不是模糊&#xff0c;但是类似&#xff09;

【MySql】实验十六 综合练习:图书管理系统数据库结构

文章目录 创建图书管理系统数据库结构一、创建数据表1.1 book表1.2 reader表1.3 borrow表 二、插入示例数据2.1 向book表插入数据2.2 向reader表插入数据2.3 向borrow表插入数据 三、查询操作3.1 根据语义为借书表borrow的bno列和 rno列建立外键3.2 查询张小海编写的“数据库原…

QT QLabel双击事件

新建类&#xff1a; DoubleClickLabel .h #pragma once#include <QLabel>class DoubleClickLabel : public QLabel {Q_OBJECTpublic:DoubleClickLabel(QWidget *parent);~DoubleClickLabel(); signals:void doubleClicked();protected: //这里重写双击事件virtual v…