我需要计算一些位计数的有符号值范围。
例如:
bitscount = 4
min value = -2^3;
max value = 2^3 - 1; in bitwise it is (1<<3 - 1)
我忘记了如何按位撰写最小值。请帮忙。
minValue = -(1 << (bitscount - 1));
maxValue = (1 << (bitscount - 1)) - 1;
尝试如下:
int bits_count = 4; // between 2 ~ 32 (I assumed int type is 32bits signed integer) int min_value = -(1 << (bits_count - 1)); int max_value = (1 << (bits_count - 1)) - 1;
参考资料:http://www.tutorialspoint.com/java/java_bitwise_operators_examples.htm