Я создаю шахматный решатель и решил использовать биты. Удобно, что на стандартной шахматной доске есть 64 квадрата. Это хорошо, так как распространенность 64-битных операционных систем, одна битовая плата может вписываться в один регистр.Использовать std :: bitset или базовый тип того же размера?
Приведенные здесь основные отличия (размер (память и код), скорость, сложность, использование памяти и т. Д.) При использовании std::bitset<64>
и функций в нем или основного типа «того же» размера unsigned long long
и выполнения бит?
Вы делаете хорошие моменты. Хотя, по крайней мере, в Visual Studio 'uint64_t' является typedef для' unsigned long long', поэтому при использовании 'uint64_t', даже несмотря на то, что читаемость и понимание читателя увеличиваются, это не имеет никакого отношения к компилятору или процессору. – Casey
Типы фиксированной ширины буквально там для удобочитаемости и понимания ... не говоря уже о том, что вы точно знаете, с чем имеете дело. Почему бы вам выбрать 'unsigned long long' над' uint64_t', если вы хотите использовать 64-битный тип? –