При работе с поплавками IEEE754 я нашел два способа обнуления верхних 9 бит 32-битной переменной. Кто-нибудь из них лучше другого?Бит-маскировка против смещения (+ java bytecode)
связанное с Java добавление: есть ли какой-либо список, содержащий информацию об эффективности работы? Я случайно обнаружил, что BIPUSH, как правило, должен быть быстрее, чем LDC, но не намного больше.
// 10111111110010100011110101110001 bits
// 00000000010010100011110101110001 significand
int bits = 0b10111111110010100011110101110001;
int significand = bits & 0b11111111111111111111111;
int significand2 = bits <<9>>> 9;
Bytecode ...
L4
LINENUMBER 49 L4
ILOAD 0
LDC 8388607 // = 0b11111111111111111111111
IAND
ISTORE 5
L5
LINENUMBER 50 L5
ILOAD 0
BIPUSH 9
ISHL
BIPUSH 9
IUSHR
ISTORE 6
Спасибо. :)
Очень редко для простой целочисленной арифметической операции значительная проблема производительности для современных процессоров. Условные ветви и промахи кэша гораздо более важны. –