浮点数、字符和类型转换知识和注意点

浮点数
std::cout << 1.0f << std::endl;//加后缀f或F则类型float
std::cout << 1.0 << std::endl;//无后缀的.0则double
std::cout << 1.0l << std::endl;//l或L后缀则是long double

std::cout << 5e2 << std::endl;//无论e还是E都是表示5.0*10的2次方。具体类型为double,同上三种后缀判断法

ps:因为看到浮点数想起来平时写题会有输出小数几位的需求。

C的printf

%d打印十进制整数

%f: 用于打印浮点数。默认打印6位小数。可以如%.2f表示打印两位小数。

%c: 用于打印字符。

%s: 用于打印字符串。

%x%X: 用于打印十六进制整数,小写或大写字母表示。

%o: 用于打印八进制整数。

%%: 用于打印百分号(%)本身,因为%被用作格式说明符,如果要打印实际的百分号,需要用两个百分号。%d:打印十进制整数

%u:无符号十进制整数

%f: 用于打印float浮点数。默认打印6位小数。可以如%.2f表示打印两位小数。

%lf:打印double浮点数

%c: 用于打印字符。

%s: 用于打印字符串。

%x%X: 用于打印十六进制整数,小写或大写字母表示。

%o: 用于打印八进制整数。

%%: 用于打印百分号(%)本身,因为%被用作格式说明符,如果要打印实际的百分号,需要用两个百分号。

0:用0来补齐,如%05d会输出4个0加a,05即前补4个0; 00002

+:会输出数字的符号%+d输出 +123

std::cout << std::fixed << std::setprecision(3) << myNumber << std::endl;//打印3位小数
字符

字符ASCII码:

十进制常见字符
48~57‘0’~‘9’
65~90‘A’~‘Z’
97~122‘a’~‘z’
10换行键

在这里插入图片描述

#include<locale>//简单了解
int main(){
    setlocale(LC_ALL,"chs");
    wchar_t ch = L'我';//wchar_t ch {L'我'};
    std::wcout<<ch<<std::endl;
}//宽字节字符wchar_t显示中文
//char16_t
//char32_t
//char8_t   utf-8标准最新的
	auto a = U'A';//推导类型
	auto b = u'A';
	auto c = L'A';
	cout << typeid(a).name() << endl;//输出类型名
	cout << typeid(a).name() << endl;
	cout << typeid(c).name() << endl;

在这里插入图片描述

类型转换
CC++
int a = int(b);int a = static_cast<int>(b);
目标类型(目标变量)static_cast<目标类型>(目标变量);

发送运算过的类型转换规则。即靠向类型较高的

类型转换顺序表
long double
double
float
unsigned long long
long long
unsigned long
long
unsigned int
int
int a = 5;
unsigned b = 10;
std::cout << a - b << (char)10;//输出如下图,为什么不是-5呢?

在这里插入图片描述

为什么结果不是-5呢?因为如果两个不相同类型数据计算, 是要通过类型转换顺序表的等级靠向等级高的,如int和unsigned类型计算,int类型低于后者,所以计算结果为unsigned类型数据,即结果要遵循unsigned类型规则解释数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值