字母大小转化怎么写比较快?
大小写字母数值的比较
大写 | 十六进制 | 二进制 |
---|---|---|
A | 41 | 01000001 |
B | 42 | 01000010 |
C | 43 | 01000011 |
小写 | 十六进制 | 二进制 |
---|---|---|
a | 61 | 01100001 |
b | 62 | 01100010 |
c | 63 | 01100011 |
回答问题
1.大小写转换
因为字母A和字母a相差20H, 2 ∗ 1 6 1 = 32 2*16^1=32 2∗161=32,也就是十进制的32。
因为 2 5 = 32 2^5=32 25=32 ,所以对应的二进制(从右往左)的第六位。
A加上32,就是二进制数的第六位由0变为1;A也就变为a。
01000001(B)+ 32(D)=01000001(B)+00100000(B)=01100001(B)
A减去32,就是二进制数的第六位由1变为0;a也就变为A。
01100001(B)- 32(D)=01100001(B)- 00100000(B)=01000001(B)
2.用&和|运算比较快
一样用A举例:
-
A—>a
01000001(B)+ 32(D)=01000001(B)+00100000(B)=01100001(B)
01000001 | 00100000 = 01100001(这个运算相当于加上32)
-
a—>A
01100001(B)- 32(D)=01100001(B)- 00100000(B)=01000001(B)
01100001 & 11011111 = 01000001(这个运算相当于减去32)