关于字符的ASCII码
关于ASCII码
在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。
| ASCII码 | 大写字母 | ASCII码 | 小写字母 | ASCII码 | 数字字符 |
|---|---|---|---|---|---|
| 65 | A | 97 | a | 48 | 0 |
| 66 | B | 98 | b | 49 | 1 |
| 67 | C | 99 | c | 50 | 2 |
| 68 | D | 100 | d | 51 | 3 |
| 69 | E | 101 | e | 52 | 4 |
| 70 | F | 102 | f | 53 | 5 |
| 71 | G | 103 | g | 54 | 6 |
| 72 | H | 104 | h | 55 | 7 |
| 73 | I | 105 | i | 56 | 8 |
| 74 | J | 106 | j | 57 | 9 |
| 75 | K | 107 | k | ||
| 76 | L | 108 | l | ||
| 77 | M | 109 | m | ||
| 78 | N | 110 | n | ||
| 79 | O | 111 | o | ||
| 80 | P | 112 | p | ||
| 81 | Q | 113 | q | ||
| 82 | R | 114 | r | ||
| 83 | S | 115 | s | ||
| 84 | T | 116 | t | ||
| 85 | U | 117 | u | ||
| 86 | V | 118 | v | ||
| 87 | W | 119 | w | ||
| 88 | X | 120 | x | ||
| 89 | Y | 121 | y | ||
| 90 | Z | 122 | z |
注意字符的比较运算。
同学们需要注意,字符是可以比较的。
怎么比较呢?比如下例样例。
'a' > 'b'
只需要注意一点:字符的比较是按照ASCII来比较。
所以上面的这个样例,计算机其实在比较:65 > 66。所以这个比较表达式的结果是:假
我们来看一个样例:
#include<bits/stdc++.h>
using namespace std;
int main(){
if('a' > 'b'){
cout<<"a的ASCII码大";
}else{
cout<<"b的ASCII码大";
}
return 0;
}
如何判断一个字符是否是数字字符?
判断一个字符是否是数字字符的表达式:字符 >= '0' && 字符<= '9'
//注意字符是单引号,字符串是双引号。
#include<bits/stdc++.h>
using namespace std;
int main(){
char c = '8';
if(c >= '0' && c <= '9'){
cout<<"c是一个数字字符。";
}else{
cout<<"c不是一个数字字符。";
}
return 0;
}
如何判断一个字符是否是小写字母字符?
判断一个字符是否是数字字符的表达式:字符 >= 'a' && 字符<= 'z'
//注意字符是单引号,字符串是双引号。
#include<bits/stdc++.h>
using namespace std;
int main(){
char c = 'a';
if(c >= 'a' && c <= 'z'){
cout<<"c是一个小写字符。";
}else{
cout<<"c不是一个小写字符。";
}
return 0;
}
如何判断一个字符是否是大写字符?
判断一个字符是否是数字字符的表达式:字符 >= 'A' && 字符<= 'Z'
//注意字符是单引号,字符串是双引号。
#include<bits/stdc++.h>
using namespace std;
int main(){
char c = 'B';
if(c >= 'A' && c <= 'Z'){
cout<<"c是一个数字字符。";
}else{
cout<<"c不是一个数字字符。";
}
return 0;
}
关于字母的大小写转换
很多时候,我们需要将字符'a'在输出的时候,转成大写,也就是输出'A'。
常用的方法是char('a'-32)。
原因很简单,计算机在计算四则运算,如果涉及到字符。那么电脑在计算的时候,就会转成字符对应的ASCII码。
关于char('a'-32)的计算。
第一步:'a'查表得知为97。
第二步:97-32得到65。
第三步:char(65),为强转的意思。也就是把数字65强转为字符。那么我们去看表里面。65对应的正好是 'A'。
关于数字字符转数字的情况
这里很多同学会比较迷糊,需要知道的是'\(0\)' 和 \(0\) 是不同的两个数据。
'\(0\)'是字符数字,表示字符0。
0就是我们平常的数学上的0。
有什么区别呢?
'\(1\)'+\(3\)的计算,是'\(1\)'的\(ASCII\)码加\(3\),即得到\(49+3 = 52\)。
\(1+3\)的计算就是数学上的计算,得到 \(4\)。
怎么相互转呢?
'\(0\)' - '\(0\)' = \(0\)
'\(1\)' - '\(0\)' = \(1\)
'\(2\)' - '\(0\)' = \(2\)
'\(3\)' - '\(0\)' = \(3\)
'\(4\)' - '\(0\)' = \(4\)
'\(5\)' - '\(0\)' = \(5\)
'\(6\)' - '\(0\)' = \(6\)
'\(7\)' - '\(0\)' = \(7\)
'\(8\)' - '\(0\)' = \(8\)
'\(9\)' - '\(0\)' = \(9\)

浙公网安备 33010602011771号