I was just curious. I thought i'd go ahead and learn some assembly. During that time I saw a trick to figure out a characters case ( the third bit of a sequence indicates the case of a character ) so I thought I'd implement it in C before trying it in Nasm.

Code:
#include <stdio.h>
#include <stdlib.h>
int IsUpper(char AChar); //Will return 1 for any uppercase char.
int IsUpper(char AChar)
{
    return (0b00100000 & AChar) | 0b1;
}
int main()
{
    printf("%i",26 >> 1); //shl 2 is equal to * by 4
    return 0;
}
The IsUpper function works fine Is it at it's fastest though? Is it correct? I mean the | 0b1 is the same as +1 right? Only the program doesn't have to do the conversion because it's already in binary?

As for the 26 >> 1 , I just remembered that from some delphi challenge ages ago. That's the same as dividing an even integer with two correct? I get an error if i try %f and 26.0 anyway. I was just curious if 26 shr 1 is faster tha 26 / 2 .

Just for the sake of it ^^