Question: I'm trying to understand the following code. What this code is trying to do is return 1 if 0x30
I'm trying to understand the following code.
What this code is trying to do is return 1 if 0x30 <= x <= 0x39 otherwise it returns 0.
How is the following code accomplishing the above? I want to understand how the code is checking whether x is between 0x30 and 0x39 using the code below.
int isAsciiDigit(int x) {
int a = x<<6;
int b = x<<5;
int c = x<<4;
int d = x<<3;
int e = x<<2;
int f = x<<1;
return (!(a))&((b)) & (c) & (~(d) | (~(e) & ~(f)));
}
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
