数字字符与对应数字相互转换

一、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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值