Size: a a a

Compiler Development

2019 September 28

AZ

Alexander Zaitsev in Compiler Development
я не понимаю, почему в данном случае для умножения и минуса разные правила
источник

Dv

Dr. Friedrich von Never in Compiler Development
Alexander Zaitsev
почему?
Сам попробуй, ну :)
источник

Dv

Dr. Friedrich von Never in Compiler Development
Магия арифетики!
источник

AZ

Alexander Zaitsev in Compiler Development
Dr. Friedrich von Never
Сам попробуй, ну :)
нет, ты не понял. ПОЧЕМУ так сделано?
источник

Dv

Dr. Friedrich von Never in Compiler Development
Почему что так сделано?
источник

Dv

Dr. Friedrich von Never in Compiler Development
Почему арифметика так работает?
источник

AZ

Alexander Zaitsev in Compiler Development
Dr. Friedrich von Never
Почему что так сделано?
что в данном случае для умножения и минуса разные правила переполнения
источник

M

MaxGraey in Compiler Development
Dr. Friedrich von Never
Почему что так сделано?
почему мы не летаем? Почему?
источник

E

EgorBo in Compiler Development
Alexander Zaitsev
нет, ты не понял. ПОЧЕМУ так сделано?
у тебя после умножения получается какое-то отрицательно число, ты его делишь на 2 - получаешь другое отрицательно число
источник

Dv

Dr. Friedrich von Never in Compiler Development
Alexander Zaitsev
что в данном случае для умножения и минуса разные правила переполнения
А они разные? Я не понимаю.
источник

AZ

Alexander Zaitsev in Compiler Development
ах черт, я понял, почему оно так палит. я тпулю просто
источник

Dv

Dr. Friedrich von Never in Compiler Development
Лан :)
источник

E

EgorBo in Compiler Development
удивительный мир программирования
источник

Dv

Dr. Friedrich von Never in Compiler Development
Просто, видать, умножение + деление не реализуют какого-то важного алгебраического конструкта, который реализуют умножение + сложение.
источник

Dv

Dr. Friedrich von Never in Compiler Development
На числах с переполнением, я имею в виду
источник

E

EgorBo in Compiler Development
представляешь в школе пишешь ответ y = x * 2 / 2; а тебе препод "Ты чего не сократил??"
источник

Dv

Dr. Friedrich von Never in Compiler Development
EgorBo
представляешь в школе пишешь ответ y = x * 2 / 2; а тебе препод "Ты чего не сократил??"
И ты ему начинаешь рассказывать про флоаты и fast math?
источник

M

MaxGraey in Compiler Development
EgorBo
представляешь в школе пишешь ответ y = x * 2 / 2; а тебе препод "Ты чего не сократил??"
signed:
x * 2 / 2 ->  mov     eax, edi

unsigned:
x * 2 / 2 -> mov     eax, edi
                  and     eax, 2147483647
источник

M

MaxGraey in Compiler Development
Даже LLVM делает различия для signed и unsigned случая
источник

AZ

Alexander Zaitsev in Compiler Development
он не имеет права по-другому делать :)
источник