本文介绍了从小写转换为大写的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想转换小写字母大写。我知道它可以很容易地做到,

  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 ) - 即带有的相同的位模式的第六位设置

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.

这篇关于从小写转换为大写的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-17 01:36