日志3
一、运算符
1.算术运算符
+:加法
-:减法
*:乘法
/:除法
%:取模(求余数)
++:自增(例如 a++ 或 ++a)
--:自减(例如 a--或 --a)
2.赋值运算符
=:赋值
+=:加法赋值(例如 a+=b 等同于 a=a+b)
-=:减法赋值(例如 a-=b 等同于 a=a-b)
*=:乘法赋值(例如 a*=b 等同于 a=a*b)
/=:除法赋值(例如 a/=b 等同于 a=a/b)
%=:取模赋值(例如a%=b等同于 a=a%b)
3.比较运算符
==:等于
!=:不等于
>:大于
<:小于
>=:大于等于
<=:小于等于
二、进制
八进制和十六进制常量表示方法的详细说明:
1.八进制常量
八进制常量以数字0开头,后跟一个或多个有效的八进制数字(0-7)
例如:
0123 表示八进制数123,它等于十进制的83
075表示八进制数75,它等于十进制的61
2.十六进制常量
十六进制常量以0x或0X开头,后跟一个或多个有效的十六进制数字(0-9和a-f或A-F,其中a-f表示10到15)
例如:
0x1A3表示十六进制数1A3,它等于十进制的419
0XFF表示十六进制数FF,它等于十进制的255
注意:
(1)在C++中,八进制和十六进制常量都是整数类型。
(2)当将八进制或十六进制常量赋值给变量时,请确保变量的类型能够容纳该值。
例如,对于非常大的十六进制数,你可能需要使用unsigned int、long或long long等类型
(3)在进行算术运算时,八进制和十六进制常量会自动转换为十进制进行计算。
三、浮点数
(1)浮点数类型:float和double,以及一种扩展精度类型long double
1.float:单精度浮点数,通常占用4个字节(32位),其中1位用于符号,8位用于指数,23位用于尾数(有效数字)。
2.double:双精度浮点数,通常占用8个字节(64位),其中1位用于符号,11位用于指数,52位用于尾数。
3.long double:扩展精度浮点数,其大小和精度依赖于编译器和平台,但通常至少与double相同,有时更大。
(2)浮点数的表示
浮点数通常以科学记数法的形式表示
例如3.14159e+00=3.14159 和1.23456e-02=0.0123456
这种表示法允许浮点数表示非常大或非常小的数值。
(3)浮点数的计算
C++中的浮点数计算遵循IEEE 754标准的算术规则,这包括加法、减法、乘法和除法等基本运算。然而,由于浮点数的表示方式(有限精度和舍入误差),这些运算可能会产生不精确的结果。
(4)精度和舍入
由于浮点数的有限精度,当进行浮点数运算时,结果可能会受到舍入误差的影响。这种误差可能会随着计算的进行而累积,导致最终结果与实际期望的值有显著偏差。
(5)如何减少舍入误差:
1.使用更高精度的浮点数类型(如double或long double)来进行计算。
2.尽量避免在需要高精度结果的计算中使用浮点数,而是使用整数或其他数值表示方法(如分数类或定点数库)。
3.在可能的情况下,对计算进行重组或优化,以减少中间结果的舍入误差。
(5)注意
1.当比较两个浮点数是否相等时,通常不建议直接比较它们的值,因为即使两个数学上相等的浮点数也可能由于舍入误差而在计算机中表示为不同的值。相反,应该比较它们的差异是否在一个可接受的容差范围内。
2.在进行浮点数运算时,要注意溢出和下溢的情况。溢出是指结果超出了浮点数类型能表示的最大范围,而下溢是指结果太小而无法用该类型的有效位数来表示。
四、ASCII码
1.ASCII码共128个字符
2.ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符
(1)标准ASCII码:也叫基础ASCII码,使用7位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母、数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。
(2)扩展ASCII码:为了让第8位(最高位)也参与编码,就形成了扩展ASCII编码。扩展ASCII码使用8位二进制数来表示,总共可以表示256种字符,包含了一些特殊符号、外来语字母和图形符号。但请注意,扩展ASCII码并不是国际标准,不同的国家有不同的字符集。
3.标准ASCII码表
按照十进制、十六进制以及字符/缩写解释进行排列,具体如下:
0~31及127:共33个,是控制字符或通信专用字符(其余为可显示字符)。如控制符LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符SOH(文头)、EOT(文尾)、ACK(确认)等。ASCII值为8、9、10和13分别转换为退格、制表、换行和回车字符。
32~126:共95个,是字符(32是空格)。其中48~57为0到9十个阿拉伯数字;65~90为26个大写英文字母;97~122为26个小写英文字母;其余为一些标点符号、运算符号等。
#include <stdio.h> int main() { char a; scanf("%c",&a); printf("%c", a-32); return 0; }
#include <stdio.h> int main() { int x; scanf("%d", &x); printf("%c\n", x+64); return 0; }