继续学c++
由于c++里面有很多和c语言很像的东西,这里就来总结一点不像的或者要注意的,或者是我已经快忘记的;
先来一个浮点型也就是实型类型的总结;
知道浮点型有这两个类型:float和double型;
然后float型占四个字节,精度为7位有效数字(注意有效数字不只是小数点后面的,是整个数有多少位),double占八个字节精度为15~16位有效数字;然后我心血来潮地用这两个类型来输出3.1415926以显示它们的区别;但是
#include<iostream>
using namespace std;
int main()
{float f1 = 3.1415926;double f2= 3.1415926;cout << f1 << endl << f2 << endl;system("pause");return 0;
}

后来知道,原来一般情况下,输出一个小数只会输出六位有效数字,不管哪种类型QAQ;
还有一点要注意的是:
默认情况下,编译器将小数当作双精度类型,也就是精度更高的double类型;所以在定义一个float型变量给它赋值小数的时候,这时候,那个小数其实是双精度,编译器会先将它转换为单精度类型再进行赋值操作(不同类型的是不可以赋值的);所以这里有一个小技巧同时也是为了看懂这个句子:
float f=3.12f;
不会吧不会吧不会有人会认为这里的f是同一个f吧,不会还有人差点要把它约掉吧,(说的就是自己);其实这里就是定义一个变量名为f的float变量给他赋值3.12;这个小数后面加了个f指的是编译器刚开始就将它当作了单精度,从而不需要在定义的时候多一步转换;(然后我又试了一下,会不会在小数的后面加一个d就是直接认为单精度呢?然后就报错了,现在想想也是,刚开始编译器就已经把小数当作双精度类型了,还要转换什么吗?);
然后还了解一个科学计数法:
在c语言里面
有时候由于一个数太大或者太小很麻烦,这时候如果这个数里面有这样的特点就可以用科学计数法:
某个数后面有很多个连续的零,小数点后面有很多连续的零:形如:
1230000000;
0.000004;
这时候就可以用科学计数法写成1.23e9;2e-6;也就是在e后面为正的话e后面几个零就相当于10的几次方,而为负的话就是相当于0.1的几次方,但是在一定限度下,计算机打印会自动将科学计数法转换为正常的形式,但是如果超过一定限度,就会直接显示(如果是正数就还会再加一个加号),只不过还可以正常加减,但是这在超过一定限度连正常加减都不可以了(其实不是不可以,只是显示错误,好像和位运算什么的有关,暂时不深入);
下面可以验证:
#include<iostream>
using namespace std;
int main()
{float f1 = 3e-6;float f2 = 3e-5;double f3 = 3e-5;double f4 = 3e-6;float f5 = 3e-4;double f6 = 3e-4;cout << f1 <<endl<<f1+1<< endl<<f2<<endl << f2+1<< endl;cout << f3 << endl << f3 + 1 << endl << f4<< endl << f4 + 1 << endl;cout << f5 << endl << f5 + 1 << endl << f6 << endl << f6 + 1 << endl;system("pause");return 0;
}
结果是这样的:
可以发现在科学计数法里面

然后再来看正数:也就是把刚刚的代码的负号去掉

这就很那个只打印六个有效数字一样,而之所以超过了那个限度,但是又没有到double的限度为什么不能计算出正确答案,好像涉及一个比较深入的知识(打印的时候位转换),这里我只是想提醒一下自己 ;如果这个是正的话,可以用整型,范围可能比这个要大一点:最大可以弄到它的最大范围;(虽然有时候整型打印也会出现打印的字节地方出错,但是这里没有问题);
然后再来复习一下字符类型:
字符类型char,占用一个节点,且字符型变量并不是将字符本身放进内存,而是将其对应的ASCII码放进内存,当然,还有转换等后续操作;字符型变量用单引号;在ASCII码中0~31给了控制字符,32~126才给课可以显示的字符;还有就是两个要记得:a的ASCII码是97,A是65;
再来介绍几个比较重要的转义字符:
//这个表示注释;也就是可以让编译器忽略它后面的一整行
\\这个表示斜杠在c和c++里面想要打印斜杠,只用一个是会报错的,也就是说,编程里面,编译器看见一个斜杠就会开始之后要有转义字符出现了,像\n是换行,但是单个n只是一个字母,这里\n在c++里面的作用和endl类似,都是换行,但是输出的方式不一样;所以可以把单个斜杠认为一个信号,所以要输出斜杠的话,在变成里面就应该用两个,这时候我就想到了这个:

也就是说,在编译器的认知,我只是向输出一个斜杠一个引号也就是/“ 而且还少打一个引号用来输出,还是看代码更好理解;


也就是说在中文里面,除了字符,其他符号想要正常输出,都要加一个斜杠 ;
然后就是一些换行符:这里换行符的作用和endl(虽然我这个也不是很明白,先只浅浅了解一下)一样,只是方式不一样:
#include<iostream>
#include<string>
using namespace std;
int main()
{cout << "hello\n";cout << "hello" << endl;cout << "hello";system("pause");return 0;
}

还有一个水平制表符\t;之前都只知道它可以让格式变整齐,现在才知道其实它是这样的原理:
对于数字数字或者字符都认定为8的倍数为一个整体,剩余的都用空格来添上,这样不仅可以尽量使数据变得很整齐,还可以让我们想输出一组数,又懒得打空格的时候方便使用:
#include<iostream>
#include<string>
using namespace std;
int main()
{cout << "hello\t123456\tfsfsfsfssf\t"<<endl;cout << "hello434\teqefec\tdfsfs\t"<<endl;system("pause");return 0;
}

这里来浅浅解释一下这个,刚开始hello是5个地方,所以剩下三个空格打印出来到它后面,123456占6个地方后面还有两个地方但因为空格,然后fsfsfsfssf占了十个地方,这时候八个已经不能满足它了,所以扩充为16个,剩下6个地方打印为空格,这里后面因为没有了,所以不明显;下面的就懒得分析了。。。
这里再介绍一个类型string,字符串型,也就是每次要用这个之前记得加上头文件#include<string>这里它的位置没有特别要求,可以放在#include<iostream>下面也可以是上面,在using namespace std;上面下面都可以;当然这里说的随便还是要符合正常头文件放的位置;然后就是它的应用实例:
#include<iostream>
#include<string>
using namespace std;
int main()
{string s = "hello";cout << s << endl;system("pause");return 0;
}

正常打印出来了;
别在年轻的时候, 吃得最胖,活得最懒,爱得最傻, 一生中最好的年轻, 都是一晃而过的,愿你能用心享受它。
相关文章:
继续学c++
由于c里面有很多和c语言很像的东西,这里就来总结一点不像的或者要注意的,或者是我已经快忘记的; 先来一个浮点型也就是实型类型的总结; 知道浮点型有这两个类型:float和double型; 然后float型占四个字节…...
Day949.遗留系统之殇:为什么要对遗留系统进行现代化? -遗留系统现代化实战
遗留系统之殇:为什么要对遗留系统进行现代化? Hi,我是阿昌,今天学习记录是关于遗留系统之殇:为什么要对遗留系统进行现代化?的内容。 不知道你是否跟曾经一样,身处一个遗留系统的漩涡之中&…...
DAY 45 Nginx服务配置
Nginx概述 Nginx: Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。 对…...
如何收集K8S容器化部署的服务的日志?
做开发的同学都知道日志的重要性,日志的种类一般有接口日志、错误日志、关键步骤日志、用户操作日志等。本文主要详细讲解使用kubernetes容器化部署的服务该如何记录和收集日志。 一、使用标准输出方式 将想要记录的日志内容输出到stdout或stderr即可(…...
python删除csv文件中的某几列或行
1. 读取数据 用pandas中的read_csv()函数读取出csv文件中的数据: import pandas as pddf pd.read_csv("comments.csv") df.head(2)用drop函数进行文件中数据的删除行或者删除列操作。 2. 删除列操作 方法一:假设我们要删除的列的名称为 ‘观众ID’,‘…...
Redis持久化机制导致服务自启动后恢复数据过长无法使用以及如何关闭
场景 若依前后端分离版手把手教你本地搭建环境并运行项目: 若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓气质的博客-CSDN博客 在上面搭建前后端分离的项目后,如果需要在windows服务上进行部署。 若依前后端分离版本,Windo…...
DAY 37 shell免交互
Here Document 概述 常用的交互程序:read,ftp,passwd,su,sudo cat也可配合免交互的方式重定向输出到文件 Here Document 的作用 使用I/O重定向的方式将命令列表提供给交互式程序标准输入的一种替代品 格式 命令 …...
用python脚本从Cadence导出xdc约束文件
用python脚本从Cadence导出xdc约束文件 概述转换方法先导出csv文件修改CSV文件 CSV转XDC检查输出XDC文件csv2xdc源代码下载 概述 在Cadence设计完成带有FPGA芯片的原理图的时候,往往需要将FPGA管脚和网络对应关系导入vivado设计软件中,对于大规模FPGA管…...
【C++ 六】内存分区、引用
内存分区、引用 文章目录 内存分区、引用前言1 内存分区模型1.1 程序运行前1.2 程序运行后1.3 new 操作符 2 引用2.1 引用基本使用2.2 引用注意事项2.3 引用做函数参数2.4 引用做函数返回值2.5 引用本质2.6 常量引用 总结 前言 本文包含内存分区、引用基本使用、引用注意事项、…...
markdown基本语法
来自神秘人儿的投稿! markdown的使用,可以参考https://markdown.com.cn/basic-syntax/ 标题:用 # 表示 段落:enter即可,两端之间有一个空行 换行:一行的末尾加两个或者多个空格,两端之间没有…...
第十篇 Spring 集成Redis
《Spring》篇章整体栏目 ————————————————————————————— 【第一章】spring 概念与体系结构 【第二章】spring IoC 的工作原理 【第三章】spring IOC与Bean环境搭建与应用 【第四章】spring bean定义 【第五章】Spring 集合注入、作用域 【第六章】…...
PADS-LOGIC项目原理图设计
最小板原理图设计 目录 1 菜单与工具使用 2 常用设置 2.1选项卡 2.2 图纸设置 2.3 颜色设置 3 设计技巧 3.1 模块化设计思路 3.2 元件放置 3.3 走线及连接符 4 原理图绘制 4.1 POWER原理图设计 4.2 MCU原理图设计 4.2.1晶振电路 4.2.2复位电路 4.2.3 BOOT电路 …...
36岁大龄程序员被裁,找了2个月工作,年包从100万降到50万,要不要接?
为了找到工作,你愿意接受降薪多少? 一位36岁的杭州程序员问: 36岁被裁,找了2个月工作,年包从100万降到50万,真心纠结,要不要接? 网友们分成了旗帜鲜明的两派,一派人认为不…...
Android Retrofit 源码分析
1、简介 Retrofit 是一种基于 Java 的 RESTful Web Service 客户端库,它可以将网络请求抽象出来并支持多种转换器,可以将 JSON、XML 和其他格式的响应数据自动转换为 Java 对象。Retrofit 通过注解的方式来描述 REST API 调用,使开发人员能够…...
CDN如何阻止网络攻击
随着网络技术的发展,网络攻击事件也越来越多,对企业和个人的安全和稳定造成严重威胁。为此,高防CDN应运而生,成为广大用户保障网络安全的重要工具。什么是高防CDN?高防CDN的特点有哪些?高防CDN如何阻止网络攻击?接下来让我们一…...
Mybatis-Plus -04 条件构造器与代码生成器
Mybatis-Plus--条件构造器与代码生成器 1 条件构造器1.1 > < 1.2 in notin1.3 between...1.4 orderBy...1.5 like... 2 代码生成器2.1 引入依赖2.2 生成器代码 1 条件构造器 通过条件构造器可以更加轻松的完成条件查询与更新(底层就是动态SQL) 1.1 > < ge 小于 &l…...
MapReduce高级篇——全局计数器
MapReduce Counter 计数器 概念 在执行MapReduce程序的时候,控制台输出日志中通常下面片段,可以发现输出信息中的核心词是counter,中文叫做计数器 在执行MapReduce城西过程中,许多时候,用户希望了解程序的运行情况,H…...
轻松掌握K8S目录持久卷PV/PVC的kubectl操作知识点04
1、介绍 在docker中可以将容器中的目录挂载出来,在k8s中pod可以部署在不同节点,假如该节点的机器宕机了,k8s可能就会将此Pod转移到其他机器,就不是原先的机器了。k8s有自己的一套挂载方案,如下图所示, 原…...
Appuploader证书申请教程
转载:IOS证书制作教程 点击苹果证书 按钮 点击新增 输入证书密码,名称 这个密码不是账号密码,而是一个保护证书的密码,是p12文件的密码,此密码设置后没有其他地方可以找到,忘记了只能删除证书重新制作&…...
acwing17给了一个头节点,从尾到头输出链表的元素,顺便练练容器
方法一 建立一个数组,从头到尾遍历一遍链表,然后将链表的每个元素的值赋给数组 犯了一个错误 新建的vector容器是一个可变长的数组,要想像数组下标那样访问前提是这个下标所指向的元素得存在,这也就跟那个声明一维数组得写出长度来…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
