I
Immortal Nephi
Largest integer number is used for test condition such as if else,
while loop and for loop. 32 bit integer number is used on 32 bit
machine or 64 bit integer number is used on 64 bit machine.
Signed integer number is the best practice. Sometimes, I prefer to
use 8 bit integer number because I don’t need large integer number.
For example:
signed char value = 0;
void Increment()
{
value++;
if( value > 0xF )
value--;
}
void Decrement()
{
value--;
if( value < 0x0 )
value++;
}
I decide to choose unsigned 8 bit integer number because two
variables cannot be combined into signed integer number and unsigned
integer number. Cast conversion is sometimes confused and possibly,
the code runs into bugs.
For example:
unsigned char value = 0;
void Increment()
{
value++;
if( value == 0x10 )
value--;
}
void Decrement()
{
value--;
if( value == 0xFF )
value++;
}
I avoid to use –1 instead of 0xFF because C++ Compiler does not know
value to be 32 bit or 64 bit. It will choose 0xFFFFFFFF on 32 bit
machine or 0xFFFFFFFFFFFFFFFF on 64 bit machine.
You will be asking performance issue. 8 bit integer number in for
loop and 32 bit / 64 bit in for loop run to be identical performance
unless you use the range 0 through 255.
The performance will degrade if you use *two* 8 bit for loop instead
of *one* 32 bit for loop because you choose to use range 0 through
4,294,967,295.
Please share your opinion about C++ practice.
while loop and for loop. 32 bit integer number is used on 32 bit
machine or 64 bit integer number is used on 64 bit machine.
Signed integer number is the best practice. Sometimes, I prefer to
use 8 bit integer number because I don’t need large integer number.
For example:
signed char value = 0;
void Increment()
{
value++;
if( value > 0xF )
value--;
}
void Decrement()
{
value--;
if( value < 0x0 )
value++;
}
I decide to choose unsigned 8 bit integer number because two
variables cannot be combined into signed integer number and unsigned
integer number. Cast conversion is sometimes confused and possibly,
the code runs into bugs.
For example:
unsigned char value = 0;
void Increment()
{
value++;
if( value == 0x10 )
value--;
}
void Decrement()
{
value--;
if( value == 0xFF )
value++;
}
I avoid to use –1 instead of 0xFF because C++ Compiler does not know
value to be 32 bit or 64 bit. It will choose 0xFFFFFFFF on 32 bit
machine or 0xFFFFFFFFFFFFFFFF on 64 bit machine.
You will be asking performance issue. 8 bit integer number in for
loop and 32 bit / 64 bit in for loop run to be identical performance
unless you use the range 0 through 255.
The performance will degrade if you use *two* 8 bit for loop instead
of *one* 32 bit for loop because you choose to use range 0 through
4,294,967,295.
Please share your opinion about C++ practice.