本文介绍了从小写转换为大写的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想转换小写字母大写。我知道它可以很容易地做到,
SUB AL,20H
不过,我已经给出另一种解决方案是,
键,AL,0DFH
请帮我理解这一点。谢谢
解决方案
看位模式:
- A(×41):
0100 0001
- A(0x61):
0110 0001
- M(送出0x4d):
0100 1101
- M(0x6d):
0110 1101
- Z(5AH即可):
0101 1010
- Z(0x7a):
0111 1010
小写ASCII是大写ASCII + 0x20的( 0010 0000
) - 即带有的相同的位模式的第六位设置的。 p>
0xdf是 1101 1111
二进制。 AND:与ING AL将设置在第六位至零,但preserve其他位值
I am trying to convert from lower case to upper case. I know it can easily be done by,
SUB AL, 20H
But I am have been given another solution which is,
AND AL, 0DFH
Please help me understand this. Thanks
解决方案
Look at the bit patterns:
- A (0x41):
0100 0001
- a (0x61):
0110 0001
- M (0x4d):
0100 1101
- m (0x6d):
0110 1101
- Z (0x5a):
0101 1010
- z (0x7a):
0111 1010
Lower case ASCII is upper case ASCII + 0x20 (0010 0000
) - i.e. the same bit pattern with the sixth bit set.
0xdf is 1101 1111
in binary. AND:ing AL with that will set the sixth bit to zero but preserve the other bit values.
这篇关于从小写转换为大写的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!