Проблема:
Найти число лидирующих нулей в 64-разрядном целом числе со знаком
Правила:
- Ввод не может рассматриваться как строка; это может быть что угодно, где математические и побитовые операции управляют алгоритмом
- Вывод должен быть проверен на соответствие 64-битному целому числу со знаком, независимо от языка
- Применяются правила игры в гольф по умолчанию
- Самый короткий код в байтах выигрывает
Тестовые случаи:
Эти тесты предполагают два дополненных числа со знаком. Если в вашем языке / решении отсутствует или используется другое представление целых чисел со знаком, сообщите об этом и предоставьте дополнительные тестовые примеры, которые могут иметь отношение к делу. Я включил несколько тестов, которые касаются двойной точности, но, пожалуйста, не стесняйтесь предлагать любые другие, которые должны быть перечислены.
input output 64-bit binary representation of input (2's complement)
-1 0 1111111111111111111111111111111111111111111111111111111111111111
-9223372036854775808 0 1000000000000000000000000000000000000000000000000000000000000000
9223372036854775807 1 0111111111111111111111111111111111111111111111111111111111111111
4611686018427387903 2 0011111111111111111111111111111111111111111111111111111111111111
1224979098644774911 3 0001000011111111111111111111111111111111111111111111111111111111
9007199254740992 10 0000000000100000000000000000000000000000000000000000000000000000
4503599627370496 11 0000000000010000000000000000000000000000000000000000000000000000
4503599627370495 12 0000000000001111111111111111111111111111111111111111111111111111
2147483648 32 0000000000000000000000000000000010000000000000000000000000000000
2147483647 33 0000000000000000000000000000000001111111111111111111111111111111
2 62 0000000000000000000000000000000000000000000000000000000000000010
1 63 0000000000000000000000000000000000000000000000000000000000000001
0 64 0000000000000000000000000000000000000000000000000000000000000000
False
вместо 0
?