В 64-битной версии x86 у меня есть следующая инструкция:
and $0xf, %eax
Содержимое %eax до и после остается 4. Как это возможно? Выполнение И 100 & 1111
должно привести к 1100
, что равно 12, а не 4.
В 64-битной версии x86 у меня есть следующая инструкция:
and $0xf, %eax
Содержимое %eax до и после остается 4. Как это возможно? Выполнение И 100 & 1111
должно привести к 1100
, что равно 12, а не 4.
С каких это пор 0100 & 1111 = 1100
?
0100 = 4
& 1111 = 15
------
0100 = 4
Думайте о 100
как о 0100
, и вы увидите, что 0100 & 1111
это явно 0100
.
Нет - вы ошибаетесь. 100 и 1111 = 100.
100
. Что инструкция вычисляет, значит все хорошо. - person Pascal Cuoq   schedule 27.01.2012add
, а неand
. - person S.S. Anne   schedule 26.04.2019