В системах, использующих дополнение до двух, приведение -1
к unsigned дает наибольшее значение, которое может представлять число без знака.
В C # вы можете использовать unchecked((UInt32)-1)
или лучше: UInt32.MaxValue
.Это хорошо определенное поведение, которое работает на всех архитектурах ЦП.
Согласно поток связал , приведя -1
к беззнаковым результатам, все биты установлены на всех архитектурах в C ++.