Повторение того, что упомянули Скай и Пранав, - кажется, эта проблема исправлена в NuGet 1.7 - см. http://nuget.codeplex.com/workitem/1655 :
. pranavkm написал 31 января в 20:17
Исправлено в changeset 6c156e0dc214
Это способ избежать выполнения более дорогих инструкций деления. Я также был весьма озадачен, когда впервые столкнулся с этим. Интересно то, что поиск магических чисел, которые используются для этого трюка (в данном случае 0x66666667
), часто дает результаты, объясняющие этот трюк. (Я считаю, что в то время это была единственная конкретная вещь, на которую мне пришлось пойти, потому что у меня не было источников.)
Быстрый поиск дал мне это сообщение в блоге: http: //blog.dkbza. org / 2007/09 / reverse-engineering-compiler-made.html Внизу есть несколько полезных ссылок (включая косвенную ссылку на статью об этом трюке).