C语言程序设计-[2] 数据类型、常量和变量

news2024/9/22 11:32:32

1、数据类型

C语言支持的数据类型如下:

2、常量

常量就是不同数据类型下的值。这里主要讲整型、实型和字符型常量。

1)整型常量:用十进制、八进制和十六进制三种形式表示。

1)实型常量:由整数部分和小数部分组成的,只有十进制方式。

3)符号常量:用#define 宏定义(编译预处理命令),指定用一个符号名称(标识符)代表一个常量,符号名称就是符号常量。

4)字符型常量(包括普通字符常量和转义字符常量):

——普通字符常量:用一对单引号括起来的一个普通字符。

如: 'a' 、 'A' 、 '3' 、'?'等。

——转义字符常量:以反斜杠符(\)开头,后跟字符的ASCII码值的字符序列。

常用转义字符常量如下:

5)字符型常量(即字符串常量):用一对双引号括起来的字符序列。[注意:双引号括起来的字符序列可以包括普通字符和转义字符。此外,还要注意字符和字符串的存储空间区别,并举例说明。]

字符串常量后面多了一个'\0'字符。

3、变量

变量定义:其基本要素包括变量名、类型和值。

上述【...】是可以省略的部分。

变量定义示例如下:

int main()
{
	int i,j;  //定义两个整型变量,只要没有加unsigned,都是指有符号的 
	float f;  //定义一个单精度实型变量 
	double d;  //定义一个单精度实型变量
	char c;  //定义一个双精度实型变量
	short s;  //定义一个短整型变量
	long l;   //定义一个长整型变量
	unsigned u;   //定义一个无符号整型变量
	return 0;
}

4、正负数存储

对于signed,上述数据类型的存储空间首位为符号位,0表示正,1表示负。此外,负数是以补码存储的。

例如:+1的int存储为1的原码:

00000000 00000001

-1的int存储为-1的补码:

——首先,-1的原码为:10000000 00000001;

——然后,-1的反码为:11111111 11111110; 【注:针对-1的原码,反转其符号位之外的所有位得到】

——最后,-1的补码为:11111111 11111110 + 00000000 00000001 = 11111111 11111111。【注:在-1的反码基础上+1,得到-1的补码】

5、进制转换

以二进制为纽带可以简化进制转换过程:

(1)二进制——>十进制

(2)十进制——>二进制

小数点左边除2原则:

55/2 = 27 余 1

27/2 = 13 余 1

13/2 = 6   余 1

6/2 = 3     余 0

3/2 = 1     余 1

1/2 = 0     余 1

直至0为止,将得到的余数进行倒排,得到110111。

小数点右边乘2原则:

0.25*2 = 0.5    取走小数点左边整数0,还剩0.5

0.5*2 = 1.0     取走小数点左边整数1,还剩0.0

0.0*2 =0.0  结束,将得到的整数进行顺排,得到01

因此,得到的二进制数为(110111.01)B。

(3)二进制——>八进制

由于八进制需要3位来表示,具体如下:

000——0

001——1

010——2

011——3

100——4

101——5

110——6

111——7

因此,可以对二进制首先进行3位补齐【用0来补】,然后再转换为八进制数。

如上(110111.01)B,小数点前面向左补齐,小数点后面向右补齐,得到(110111.010)B。

这样(110111.010)B的八进制表示为:(67.2)O。

(4)八进制——>二进制

也就是“二进制——>八进制”的逆过程:

将(67.2)O中的八进制位转换成相应的二进制位即可得到:(110111.010)B,然后删除无意义的0得到:(110111.01)B。

(5)二进制——>十六进制

由于十六进制需要4位来表示,具体如下:

0000——0

0001——1

0010——2

0011——3

0100——4

0101——5

0110——6

0111——7

1000——8

1001——9

1010——A,即10

1011——B,即11

1100——C,即12

1101——D,即13

1110——E,即14

1111——F,即15

因此,可以对二进制首先进行4位补齐【用0来补】,然后再转换为十六进制数。

如上(110111.01)B,小数点前面向左补齐,小数点后面向右补齐,得到(00110111.0100)B。

这样(00110111.0100)B的八进制表示为:(37.4)H。

(6)十六进制——>二进制

也就是“二进制——>十六进制”的逆过程:

将(37.4)H中的十六进制位转换成相应的二进制位即可得到:(00110111.0100)B,然后删除无意义的0得到:(110111.01)B。

(7)十进制、八进制和十六进制之间转换

可以借助二进制来实现,即上述(1)~(6)。

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

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

相关文章

HCIP实验-MGRE

实验拓扑: 实验要求: 1.R2为ISP,其上只能配置IP地址 2.R1-R2之间为HDLC封装 3.R2-R3之间为PPP封装,pap认证,R2为主认证方 4.R2-R4之间为PPP分装,chap认证,R2为主认证方 5.R1、R3、R4构建MG…

unity拖拽物品遇到的bug及解决思路

记录一下拖拽实现过程中遇到的bug RectTransform 专门用在UI中transform 判断点击是否在UI中 使用这个函数就可以判断点击的是否是UI面板,返回true表明在UI面板中 EventSystem.current.IsPointerOverGameObject()值得一提的是,如果发现了有UI穿透效…

【C语言】分支与循环(分支篇)

前言 C语言是一种结构化的计算机语言,这里指的通常是顺序结构、选择结构、循环结构,掌握这三种结构之后我们就可以解决大多数问题。 分支结构可以使用if、switch来实现,而循环可以使用for、while、do while来实现。 1. if语句 1.1 if if…

【滴水三期】32/64位——PE文件节表打印与解析

【作业内容】 1、手动查&#xff0c;画个PE文件图。 2、编写程序打印节表中的信息。 3、根据节表中的信息&#xff0c;到文件中找到所有的节&#xff0c;观察节的开始位置与大小是否与节表中的描述一致 【PE file_buffer文件图】 【IMAGE_SECTION_HEADER解析】 <winNT.h…

web浏览器播放rtsp视频流,海康监控API

概述 这里记录一下如何让前端播放rtsp协议的视频流 ​ 项目中调用海康API&#xff0c;生成的视频流(hls、ws、rtmp等)通过PotPlayer播放器都无法播放&#xff0c;说明视频流有问题&#xff0c;唯独rtsp视频流可以播放。 但是浏览器本身是无法播放rtsp视频的&#xff0c;即使…

Qt3D给圆环等立体图形添加纹理图片

添加纹理图片&#xff0c;首先需要自己找一个纹理图&#xff0c;当然了&#xff0c;随便什么图片都行。 创建3D图形的主要步骤查看另一篇文章。 这里主要代码如下&#xff1a; 使用QTextureLoader加载图片&#xff0c;图片路径需为qrc:/的路径。 auto *planeTransform1 ne…

PyMongo

什么是PyMongo PyMongo 是一个 Python 库&#xff0c;用于与 MongoDB 数据库进行交互。MongoDB 是一个基于文档的 NoSQL 数据库&#xff0c;提供高性能、可扩展性和灵活的架构。PyMongo 提供了一套工具&#xff0c;使得在 Python 程序中操作 MongoDB 变得简单和高效。 安装PyMo…

【C++程序设计】——利用数组处理批量数据(二)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-削好皮的Pineapple! &#x1f468;‍&#x1f4bb; hello 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 削好皮的Pineapple! 原创 &#x1f468;‍&#x1f4…

17085 工作分配问题(优先做)

这个问题可以通过回溯法来解决。我们可以遍历所有可能的工作分配方案&#xff0c;然后找出总劳务费用最小的方案。 以下是C代码实现&#xff1a; #include <iostream> #include <vector> #include <algorithm> using namespace std;const int INF 1e9; co…

羌活基因组--文献精读-36

The chromosome-scale assembly of the Notopterygium incisum genome provides insight into the structural diversity of coumarins 羌活&#xff08;Notopterygium incisum&#xff09;基因组的染色体级别组装为香豆素的结构多样性提供了新的见解 摘要 香豆素是由苯丙素途…

内网安全:多种横向移动方式

1.MMC20.Application远程执行命令 2.ShellWindows远程执行命令 3.ShellBrowserWindow远程执行命令 4.WinRM远程执行命令横向移动 5.使用系统漏洞ms17010横向移动 DCOM&#xff1a; DCOM&#xff08;分布式组件对象模型&#xff09;是微软的一系列概念和程序接口。它支持不同…

Java中操作文件

认识⽂件 我们先来认识狭义上的⽂件(file)。针对硬盘这种持久化存储的I/O设备&#xff0c;当我们想要进⾏数据保存时&#xff0c; 往往不是保存成⼀个整体&#xff0c;⽽是独⽴成⼀个个的单位进⾏保存&#xff0c;这个独⽴的单位就被抽象成⽂件的概 念&#xff0c;就类似办公桌…

【Linux】深入理解线程

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…

基于ssm的图书管理系统/图书借阅管理系统

获取源码联系方式请查看文章结尾&#x1f345; 摘 要 网络技术的快速发展给各行各业带来了很大的突破&#xff0c;也给各行各业提供了一种新的管理模块&#xff0c;对于图书管理将是又一个传统管理到智能化信息管理的改革&#xff0c;对于传统的图书借阅的管理&#xff0c;所包…

最长上升子序列LIS(一般+优化)

1. 题目 题目链接&#xff1a; B3637 最长上升子序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 输入样例&#xff1a; 6 1 2 4 1 3 4 输出样例&#xff1a; 4 说明/提示&#xff1a; 分别取出 1、2、3、4 即可。 2. 具体实现 2.1 一般做法 dp[i]表示第i个位置的…

医院管理系统读取身份证源码- CyberWinApp-SAAS 本地化及未来之窗行业应用跨平台架构

一、身份证读取 提高效率&#xff1a;快速获取身份信息&#xff0c;避免手动输入的繁琐和耗时&#xff0c;极大地提升业务办理速度。 准确性高&#xff1a;减少人工输入错误&#xff0c;确保身份信息的精准无误。 便捷操作&#xff1a;简化流程&#xff0c;使工作人员操作更轻…

51单片机个人学习笔记14(直流电机驱动及PWM)

前言 本篇文章属于STC89C52单片机&#xff08;以下简称单片机&#xff09;的学习笔记&#xff0c;来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记&#xff0c;只能做参考&#xff0c;细节方面建议观看视频&#xff0c;肯定受益匪浅。 [1-1] 课程简介_哔哩…

Elemnt UI筛选时间功能

html&#xff1a; <el-form-item label"数据筛选: " ><el-date-picker v-model"choose_time" type"datetimerange" size"small" change"chooseTime" style"width:100%;" value-format"yyyy-MM-dd …

逻辑推理之lora微调

逻辑推理微调 比赛介绍准备内容lora微调lora微调介绍lora优势代码内容 start_vllm相关介绍调用 运行主函数提交结果总结相应连接 比赛介绍 本比赛旨在测试参与者的逻辑推理和问题解决能力。参与者将面对一系列复杂的逻辑谜题&#xff0c;涵盖多个领域的推理挑战。 比赛的连接:…

内网穿透--ICMP隧道转发实验

实验背景 通过公司带有防火墙功能的路由器接入互联网&#xff0c;然后由于私网IP的缘故&#xff0c;公网无法直接访问内部web服务器主机。通过内网其它主机做代理&#xff0c;穿透访问内网web服务器主机边界路由器或防火墙做静态NAT映射访问内网服务器inux主机&#xff0c;且策…