assembly - toUpper/toLower in mips -


i need write program using mips take string , switch uppercase letters lower case , lowercase letters uppercase. instinct write if statements using letter numerical values wondering if there better way go this.

yes, there better way of doing this! ascii values of corresponding upper , lower case alphabetical characters differ 0x20. instance, 'a' = 0x41 , 'a' = 0x61. basically, sixth bit set lower case characters, , cleared upper case.

the simplest implementation uses bit-bashing trick - if can identify character letter, can upcase using:

ch &= ~0x20; 

or downcase with:

ch |= 0x20; 

remember, won't work other alphabetic ascii characters. can check whether character matches (ch >= 'a' && ch <= 'z') || (ch >= 'a' && ch <= 'z').


another approach avoids if entirely build 256-entry table consisting of intended output each character, , indexing each character. may slightly more efficient, depending on processor, @ expense of being little more annoying write out (or generate).


Comments

Popular posts from this blog

java.util.scanner - How to read and add only numbers to array from a text file -

rewrite - Trouble with Wordpress multiple custom querystrings -