当前位置: 首页 > article >正文

No.2十六届蓝桥杯备战|练习题4道|数据类型|字符型|整型|浮点型|布尔型|signed|unsigned(C++)

B2002 Hello,World! - 洛谷
#include <iostream>  
using namespace std;  
int main()  
{  
cout << "Hello,World!" << endl;  
return 0;  
}
打印飞机
#include <iostream>
using namespace std;

int main()
{
    cout << "     **     " << endl;
    cout << "     **     " << endl;
    cout << "************" << endl;
    cout << "************" << endl;
    cout << "    *  *    " << endl;
    cout << "    *  *    " << endl;
    
    return 0;
}
B2003 输出第二个整数 - 洛谷
#include <iostream>  
using namespace std;  

int main()  
{  
	int n1, n2;  
	
	cin >> n1 >> n2;  
	cout << n2 << endl;  
	
	return 0;  
}

这⾥的n1和n2两个整数,可以分两次读⼊,也可以⼀次读⼊,只有获取到第⼆个输⼊值才能输出结果。
cin是⽀持连续读⼊⼏个数值的
cout也是支持连续输出⼏个数值的

B2005 字符三角形 - 洛谷
#include<iostream>  
using namespace std;  

int main()  
{  
	char c = 0;  
	
	cin >> c;  
	
	cout << " " << c << endl;  
	cout << " " <<c << c << c << endl;  
	cout << c << c << c << c << c <<endl;  

	return 0;  
}

数据类型

C++中提供了丰富的数据类型来描述⽣活中的各种数据。⽐如:可以使⽤整型类型来描述整数,使⽤字符类型来描述字符,使⽤浮点型类型来描述⼩数。
所谓“类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作数据。

字符型
	char   // character的缩写

字符是⽤单引号括起来的,如: ‘a’ , ‘b’ , ‘@’ 。为了能说明这些字符,给他们抽象出⼀种类型,就是字符型,C语⾔中就是 char 。

ASCII编码
在计算机中所有的数据都是以⼆进制的形式存储的
美国国家标准学会(ANSI)出台了⼀个标准ASCII编码,C语⾔中的字符就遵循了ASCII编码的⽅式。
![[Pasted image 20241230124617.png]]

ASCII 码表 - cppreference.com

  • 字符 A~Z 的ASCII码值从 65~90
  • 字符 a~z 的ASCII码值从 97~122
  • 对应的⼤⼩写字符(a和A)的ASCII码值的差值是 32
  • 数字字符 0~9 的ASCII码值从 48~57
  • 换⾏ \n 的ASCII值是: 10
  • ASCII码值从0~31这32个字符是不可打印字符,⽆法打印在屏幕上观察
整型

整型类型是对所有整数的抽象,为了能对整数形成统⼀的类型标识,就有整型;
在C和C++中整型被分为四⼤类: short 、 int 、 long 、 long long 。

short [int]      // 短整型 
int              // 整型
long [int]       // ⻓整型
long long [int]  // 更⻓的整型
浮点型

浮点型式对所有实数(⼩数)的抽象,为了能对实数进⾏统⼀的类型标识,就有了浮点型。
浮点型有三种:

float           // 单精度浮点型
double          // 双精度浮点型
long double     // 更⻓的双精度浮点型
3.14;       //编译器会默认识别为double类型
3.14f;      //编译器会默认识别为float类型
1e5;        //这种写法是科学计数法的形式,意思是1.0*10^5  
1e5+10;     //1*100000+10 == 100010  
1.23e5+10;  //1.23*100000+10 = 123010
布尔型

C++有⼀种类型叫: bool (布尔类型),布尔类型的变量的值可以是 true 或 false ,这种类型的变量专⻔⽤来表⽰真或假的。当然在C和C++中,0表⽰假,⾮0表⽰真,有时候不使⽤ bool 类型也能表达相同的逻辑。

bool
#include <iostream>
using namespace std;  

int main()  
{  
	bool flag = true;  
	
	if (flag)  
	printf("I like C++!\n");  
	
	return 0;  
}  

//代码2  
#include <iostream>  
using namespace std;  

int main()  
{  
	int flag = 0;  
	
	cin >> flag; //如果输⼊⾮零的值,flag就表⽰真  
	if (flag)  
	printf("I like C++!\n");  
	
	return 0;  
}
signed与unsigned

signed 和 unsigned 关键字是修饰字符型和整型类型的。
signed 关键字,表⽰⼀个类型带有正负号,包含负值;⽐如:温度、银⾏存款。
unsigned 关键字,表⽰该类型不带有正负号,只能表⽰零和正整数,⽐如:年龄。
有了 signed 和 unsigned 的修饰,字符和整型类型其实更加丰富,可以有以下这些:

// 字符型  
char  
signed char    // 有符号的字符类型  
unsigned char  // ⽆符号的字符类型  

// 短整型  
short [int]  
[signed] short [int]  // 有符号的短整型 
unsigned short [int]  // ⽆符号的短整型|

// 整型  
int  
[signed] int     // 有符号的整型
unsigned [int]   // ⽆符号的整型

// ⻓整型  
long [int]  
[signed] long [int]   // 有符号的⻓整型  
unsigned long [int]   // ⽆符号的⻓整型  

// 更⻓的整型  
long long [int]  
[signed] long long [int]   // 有符号的  
unsigned long long [int]   // ⽆符号的

对于 int 类型,默认是带有正负号的,也就是说 int 等同于 signed int 。
由于这是默认情况,关键字 signed ⼀般都省略不写,但是写了也不算错。

signed int a; //等同于int a,⼀般不写signed

int 类型也可以不带正负号,只表⽰⾮负整数。这时就必须使⽤关键字 unsigned 声明变量。

unsigned int a; // unsigned int:⽆符号整数类型

变量声明为 unsigned 的好处是,同样⻓度的内存能够表⽰的最⼤整数值,增⼤了⼀倍。
⽐如,16位的 signed short int 的取值范围是: -32768~32767 ,最⼤是 32767 ;
⽽ unsigned short int 的取值范围是: 0~65535 ,最⼤值增⼤到了 65535 。
32位的 signed int 的取值范围可以参看 climits 中给出的定义。

下⾯的定义是Dev-C++环境中, climits 中相关定义,其实如果仔细看 climits 中也是包含的
limits.h 。

#define SHRT_MIN (-32768)          // 有符号16位整型的最⼩值
#define SHRT_MAX 32767             // 有符号16位整型的最⼤值
#define USHRT_MAX 0xffffU          // ⽆符号16位整型的最⼤值
#define INT_MAX 2147483647|        // 有符号整型的最⼤值
#define INT_MIN (-2147483647 - 1)  // 有符号整型的最⼩值

unsigned int ⾥⾯的 int 可以省略,所以上⾯的变量声明也可以写成下⾯这样。

unsigned a;

字符类型 char 也可以设置 signed 和 unsigned 。

signed char c;      // 范围为 -128 到 127  
unsigned char c;    // 范围为 0 到 255

char 类型到底是 signed char 还是 unsigned char ,由编译器决定。⼤部分的编译器上 char 就是 signed char 。
这就是说, char 不等同于 signed char ;它有可能是 signed char ,也有可能是unsigned char 。这⼀点与 int 不同, int 就是等同于 signed int 。


http://www.kler.cn/a/459388.html

相关文章:

  • java项目之社区医院信息平台源码(springboot+mysql)
  • 零基础WPF使用NLog记录日志
  • 【NX入门篇】
  • 设计模式之桥接设计模式
  • 昆仑万维大数据面试题及参考答案
  • 《Vue进阶教程》第三十四课:toRefs的使用
  • 下载并使用CICFlowMeter提取网络流特征(Windows版本)
  • Mac 环境 VVenC 编译与编码命令行工具使用教程
  • 英创主板ESM8400支持Debian 12桌面系统
  • CPT203 Software Engineering 软件工程 Pt.1 概论和软件过程(中英双语)
  • Python入门:8.Python中的函数
  • kanzi做3d时钟屏保
  • 【算法day27】动态规划:基础2
  • 微软Win11内核迎新变,Rust语言助力提升系统安全可靠性
  • 第25天:信息收集-项目系统一键打点资产侦察企查产权空间引擎风险监测利器部署
  • 29. 书籍叠放
  • 大模型系列——旋转位置编码和长度外推
  • Django 模型中使用 `UniqueConstraint` 实现唯一性约束
  • 碰一碰发视频后端源码技术开发详解,支持OEM
  • VectorCAST入门指导
  • vue3大屏实现;使用使用CSS Grid实现大屏
  • wxWidgets 3.2.6发布 —— 发布于2024年9月9日
  • 【机器学习】-深度学习模型
  • 计算机网络 (16)数字链路层的几个共同问题
  • node.js之---单线程异步非阻塞 I/O
  • 【C++】unordered系列关联式容器及其底层结构