一、ASCII表中数字字符
(char)>>>(int)>>>(bin)
'0' >>> 48 >>> 0b110000
'1' >>> 49 >>> 0b110001
'2' >>> 50 >>> 0b110010
'3' >>> 51 >>> 0b110011
'4' >>> 52 >>> 0b110100
'5' >>> 53 >>> 0b110101
'6' >>> 54 >>> 0b110110
'7' >>> 55 >>> 0b110111
'8' >>> 56 >>> 0b111000
'9' >>> 57 >>> 0b111001
二、数字转二进制
0 >>> 0b000000
1 >>> 0b000001
2 >>> 0b000010
3 >>> 0b000011
4 >>> 0b000100
5 >>> 0b000101
6 >>> 0b000110
7 >>> 0b000111
8 >>> 0b001000
9 >>> 0b001001
目的:将数字字符转换成对应数字
根据上方对应转换关系 得出结论 (int)=(char)^48
例: '0'^48==0
异或运算转换为二进制来看
0b110000^0b110000=0b000000
例: '5'^48=5
0b110101^0b110000=0b000101
0b110101
^0b110000
=0b000101
其他同理
原理:
任意一个数字字符与其对应数字的二进制编码
- 相同之处:二进制编码后(低)四位相同
- 不同之处:二进制编码强(高)四位不同
要进行对应转换 应当将不同之处改为相同 char的0b0011xxxx
→int的0b0000xxxx
其中数字48的二进制为0b00110000
结论:
char 0b0011xxxx
^ 48 0b00110000
= int 0b0000xxxx
- 数字转对应字符同理
int num;
char word;
num=word^48;
word=num^48;