2.C语言数据类型

news2024/11/25 21:13:09

常量与变量

1.**常量:**程序运行中,值不改变的量
变量:int num=5;值可以变的量
2 C语言三种简单数据类型:整型,实型,字符型

%c %d %ld %s %f

在这里插入图片描述

整型-进制的转换

**1.十进制:**默认的进制数,

int a=5; //将十进制数10放到变量a中

**2.十六进制:

** 在代码中的标志为0**

int b=0x5ab;//将十六进制数15ab放到变量a中

要将16进制转为2进制的话:
1.可以直接每位✖16的位数次方累加即可=十进制,然后再将十进制对2进行辗转相除
2.将16进制的每一位进行四位展开变成二进制码的二进制数

**十六进制转为二进制的对应关系**
0 -> 0000
1 -> 0001
2 -> 0010
3 -> 0011
4 -> 0100
5 -> 0101
6 -> 0110
7 -> 0111
8 -> 1000
9 -> 1001
A -> 1010
B -> 1011
C -> 1100
D -> 1101
E -> 1110
F -> 1111

对于十六进制数 0xAB,转换步骤如下:

将 A 转换为 1010
将 B 转换为 1011
现在我们可以将两个四位二进制数组合在一起,得到十六进制数 0xAB 对应的二进制数为 10101011。

因此,十六进制数 0xAB 转换为二进制数为 1010 1011 0xAB实际对应就是AB转为二进制即可,定义有前导输出无前导

3.八进制,前导加0

int a=016;//正确
int a=018;//错误,需<8
printf("%o",016);//定义有前导,输出无前导,结果为16

4.一些进制转换并输出的疑难点:

1.以下代码表示为将16进制数0xff转为十进制输出为255

printf("%d",0xff);
原因:
(15 * 16^1) + (15 * 16^0)
= (15 * 16) + (15 * 1)
= 240 + 15
= 255

2.将八进制数转为十进制输出

printf("%d,%0",012,22);
输出为:1026
1*8^1+2*8^0=10(8进制转为10进制)

22转为8进制就是辗转相除8=26

如果22转为16进制就是:
2 ÷ 16 = 16
余数 6 对应十六进制中的字符 "6"。
因此,22 转换为十六进制数为 16

4.整型变量

在这里插入图片描述
区分VC和TC下的区别,int在TC下两个字节,就是16个二进制位,而在VC下是32位,8字节
1. int的范围:-32768~32767 注意整型是向下取整1.5->1
2.长整型注意事项:

long a=123;
printf("%ld,%ld\n",12l,a);
输出:12123

3.无符号整型:unsigned int x=123 , “%u”
目的就是忽略符号位的1负数所带来的影响
比如下述unsigned输出-1:
以下皆为TC环境,int2字节,16位,固然最值范围为0-65535
步骤:-1是负数,unsigned(忽略符号位)将负数时不可转为补码的(用来表示有符号的整数的),-1——>1111xx111116个1然后第一个1的作用忽略:值为2^16-1
在这里插入图片描述

5.原码反码补码

在计算机中,通常使用二进制补码进行存储;
正数的原反补都一样,故直接输出即可;
-2为例
原:1000xx0010
反:固定符号位不动,其余取反 11111xx01
补:+1

原码: 10000000 00000000 00000000 00000010
反码: 11111111 11111111 11111111 11111101
补码: 11111111 11111111 11111111 11111110

输出仍为-2

解释:
对于中间的 1,它是补码表示中的位权值,用来表示负数的部分。在补码表示中,最高位(最左侧位)为符号位,其余位用来表示数值部分。

假设我们有一个数的补码表示为 11111111 11111111 11111111 11111110,我们可以按照以下步骤计算它所代表的负数值(以32位为例):

1.确定符号位:最高位为1,表示负数。
2.取反操作:将除符号位外的其他位取反,即 00000000 00000000 00000000 000000013.1操作:将取反后的结果加1,即 00000000 00000000 00000000 00000010。
最终结果为 -2。因此,补码表示 11111111 11111111 11111111 11111110 对应的负数值为 -2,其中的中间

6.实型

实型常量

1.小数形式
1.5 ,2 , -2.5

2.指数形式
由e或者E组成(E的左右必须都是数字)
E的右侧必须为整数不能小数

实型变量

注意float %f的输出默认时保留六位小数

float a=1;
printf("%f\n",a);
printf("%f\n",1.0);

在这里插入图片描述
例子:
在这里插入图片描述

7.字符型

注意字符常量只能是单个字符:不能是’ab’这种

 char x='ac';(错误)

在这里插入图片描述

8.转义字符常量

在这里插入图片描述
这里需要注意八进制和十六进制对长度的影响
/xab为1+/107是1-3位的八进制数为1+\为1+A为1+\对"的转义为1=5
在这里插入图片描述

字符串常量

当问题是字符串占有几个字节时,需要注意加上末尾的\0
在这里插入图片描述

不同数据类型的混合运算

int a = 10;
long b = 20;
int c = a + b; // 结果为长整型,隐式将int转换为long

float a = 3.14;
double b = 2.71828;
double c = a * b; // 结果为双精度浮点数,隐式将float转换为double

int a = 5;
float b = 2.5;
float c = a / b; // 结果为单精度浮点数,隐式将int转换为float

float a = 3.14;
double b = 2.71828;
double c = a + b; // 结果为双精度浮点数,隐式将float转换为double

强制转换符的使用例子

float a = 3.14;
int b = (int)a; // 将浮点数a强制转换为整数类型

int a = 5;
float b = (float)a; // 将整数a强制转换为单精度浮点数类型

double a = 3.14159;
float b = (float)a; // 将双精度浮点数a强制转换为单精度浮点数类型

int a = 1000;
short b = (short)a; // 将整数a强制转换为短整型,可能发生溢出

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

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

相关文章

SpringBoot使用JKS或PKCS12证书实现https

SpringBoot使用JKS或PKCS12证书实现https 生成JKS类型的证书 可以利用jdk自带的keytool工具来生成证书文件&#xff0c; 默认生成的是JKS证书 cmd命令如下: 执行如下命令&#xff0c;并按提示填写证书内容&#xff0c;最后会生成server.keystore文件 keytool -genkey tomcat…

ChatGPT在商业世界中的创新应用:颠覆传统营销与客户关系管理

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

14、容器初始化器和配置环境后处理器

容器初始化器和配置环境后处理器 容器初始化器 与传统Spring的容器后处理器&#xff08;也可对容器做一些定制&#xff09;对比&#xff0c;此处的容器初始化器的执行时机要更早一些。 容器初始化器负责可对Spring容器执行初始化定制。 就是在启动项目的时候&#xff0c;在容…

eclipse版本与jdk版本对应关系

官网&#xff1a;Eclipse/Installation - Eclipsepedia eclipse历史版本&#xff08;2007-&#xff09;&#xff1a;Older Versions Of Eclipse - Eclipsepedia Eclipse Packaging Project (EPP) Releases | Eclipse Packages

springboot疾病查询网站【纯干货分享,免费领源码01548】

spring boot疾病查询网站 摘 要 随着互联网时代的到来&#xff0c;同时计算机网络技术高速发展&#xff0c;网络管理运用也变得越来越广泛。因此&#xff0c;建立一个B/S结构的疾病查询网站&#xff0c;会使疾病查询工作系统化、规范化&#xff0c;也会提高医院形象&#xff0c…

红外雨量计(光学雨量传感器)检测降雨量,预防内涝

红外雨量计&#xff08;光学雨量传感器&#xff09;检测降雨量&#xff0c;预防内涝 随着城市化进程的加快&#xff0c;城市内涝成为一个愈发严峻的问题。短时间内大量的降雨&#xff0c;不仅会给城市交通带来困难&#xff0c;也会对城市的基础设施和居民的生活造成很大的影响…

ESP32cam系列教程003:ESP32cam实现远程 HTTP_OTA 自动升级

文章目录 1.什么是 OTA2. ESP32cam HTTP_OTA 本地准备2.1 HTTP OTA 升级原理2.2 开发板本地基准程序&#xff08;程序版本&#xff1a;1_0_0&#xff09;2.3 开发板升级程序&#xff08;程序版本&#xff1a;1_0_1&#xff09;2.4 本地 HTTP_OTA 升级测试2.4.1 本地运行一个 HT…

Spring系列二:基于注解配置bean

文章目录 &#x1f497;通过注解配置bean&#x1f35d;基本介绍&#x1f35d;快速入门&#x1f35d;注意事项和细节 &#x1f497;自己实现Spring注解配置Bean机制&#x1f35d;需求说明&#x1f35d;思路分析&#x1f35d;注意事项和细节 &#x1f497;自动装配 Autowired&…

谷粒商城第八天-商品服务之品牌管理的整体实现(直接使用逆向生成的代码;含oss文件上传)

目录 一、总述 二、前端部分 2.1 创建好品牌管理菜单 2.2 复制组件 ​编辑2.3 复制api ​​​编辑 2.4 查看效果 ​编辑2.5 需要优化的地方 2.6 具体优化实现 2.6.1 优化一&#xff1a;将表格的状态列&#xff08;这里是是否显示列&#xff09;修改为开关&#xff…

Day15-作业(Maven高级)

作业1&#xff1a;完成苍穹外卖项目目录结构创建 说明&#xff1a; 1.sky-take-out 是父工程 2.sky-common/sky-pojo/sky-server 是子工程 3.sky-server模块引用了sky-common/sky-pojo模块 作业2&#xff1a;完成汇客CRM项目目录结构创建 说明&#xff1a; huike-paren…

判断变量是否为标量(没有维度,单个数值)numpy.isscalar()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 判断变量是否为标量 &#xff08;没有维度,单个数值&#xff09; numpy.isscalar() [太阳]选择题 请问关于以下代码表述错误的是&#xff1f; import numpy as np a 0 b np.array([0]) pri…

六、初始化和清理(3)

本章概要 成员初始化构造器初始化 初始化的顺序静态数据的初始化显式的静态初始化非静态实例初始化 成员初始化 Java 尽量保证所有变量在使用前都能得到恰当的初始化。对于方法的局部变量&#xff0c;这种保证会以编译时错误的方式呈现&#xff0c;所以如果写成&#xff1a…

初识Java - 概念与准备

本笔记参考自&#xff1a; 《On Java 中文版》 目录 写在第一行 Java的迭代与发展 Java的迭代 Java的参考文档 对象的概念 抽象 接口 访问权限 复用实现 继承 基类和子类 A是B和A像B 多态 单根层次结构 集合 参数化类型 对象的创建和生命周期 写在第一行 作为一…

Charles抓包工具使用(一)(macOS)

Fiddler抓包 | 竟然有这些骚操作&#xff0c;太神奇了&#xff1f; Fiddler响应拦截数据篡改&#xff0c;实现特殊场景深度测试&#xff08;一&#xff09; 利用Fiddler抓包调试工具&#xff0c;实现mock数据特殊场景深度测试&#xff08;二&#xff09; 利用Fiddler抓包调试工…

pytorch-gpu 极简安装

1、进入pytoch官网&#xff1a;PyTorch 找到pytorch-gpu版本&#xff0c;看到CUDA11.8、11.7、CPU&#xff0c;这里我选择安装CUDA11.8 2、下载CUDA Toolkit&#xff1a;CUDA Toolkit 11.8 Downloads | NVIDIA Developer 3、下载CUDANN&#xff1a;cuDNN Download | NVIDIA D…

TCP拥塞控制详解 | 1. 概述

网络传输问题本质上是对网络资源的共享和复用问题&#xff0c;因此拥塞控制是网络工程领域的核心问题之一&#xff0c;并且随着互联网和数据中心流量的爆炸式增长&#xff0c;相关算法和机制出现了很多创新&#xff0c;本系列是免费电子书《TCP Congestion Control: A Systems …

基于Spring Boot的鲜花销售网站设计与实现(Java+spring boot+MySQL)

获取源码或者论文请私信博主 演示视频&#xff1a; 基于Spring Boot的鲜花销售网站设计与实现&#xff08;Javaspring bootMySQL&#xff09; 使用技术&#xff1a; 前端&#xff1a;html css javascript jQuery ajax thymeleaf 微信小程序 后端&#xff1a;Java springboot…

运算放大器(三):差分放大

一、定义 差分放大电路又称为差动放大电路&#xff0c;当该电路的两个输入端的电压有差别时&#xff0c;输出电压才有变动&#xff0c;因此称为差动。 二、电路结构 常用的差分放大电路如下 图1 所示&#xff0c; 图1 根据虚短和虚断可得&#xff1a;

C# Blazor 学习笔记(0):初识Blazor

文章目录 Blazor是什么适合人群 开始学习BlazorBlazor资源如何创建BlazorBlazor 基础知识介绍文件分布Razor和cshtml的区别Razor介绍 Blazor是什么 Blazor是微软推出的前端框架&#xff0c;有两种形式&#xff0c;以下以Blazor Server为主。具有一下特点 前端是用C#而不是JS前…

Linux编辑器 - vim使用

1.vim的基本概念 Vim是一个广泛使用的文本编辑器&#xff0c;它是在Unix和Linux系统中常用的命令行文本编辑器之一。 vim的主要三种模式 ( 其实有好多模式&#xff0c;目前掌握这 3 种即可 ), 分别是 命令模式 &#xff08; command mode &#xff09;、 插入模式 &#xff0…