#c_sharp #системы_счисления
Здравствуйте! Достаточно часто в open-source проектах замечаю, что разработчики записывают числа не так: int i = 2147483647; А так: int i = 0x7FFFFFFF; Даёт это один и тот же результат: у нас имеется переменная, содержащая значение = int.MaxValue, но в чем глубокая логика такой записи? Просто, мол: "Я умею записывать числа в 16-ричном представлении, посмотрите на меня!" Или же тут есть некоторые плюсы? Может, присвоение идет на наносекунды быстрее и/или машине их проще так воспринимать? Разрешите, пожалуйста, мои сомнения по сему поводу!
Ответы
Ответ 1
Очевидно, что данное значение инициализатора int i = 2147483647; запомнить сложно. Нужно постоянно сверяться со справочником, чтобы правильно выписать все цифры. Такая запись int i = 0x7FFFFFFF; не требует наличия феноменальной памяти. Но в любом случае было бы проще, лучше и яснее записать int i = int.MaxValue; так как такая запись самодокументируемая. Запись int i = 0x7FFFFFFF; предпочтительнее предыдущей записи лишь в одном случае: когда переменная i используется как некоторая маска для битовых операций.Ответ 2
Часто необходимо записать двоичное беззнаковое целое. Каждая шестнадцатиричная цифра может заменить собой 4 бита в бинарном представлении, т.е. байт - две "сконкатенированных" шеснадцатиричных цифры. Это удобнее читать и записывать, чем ряды двоичных разрядов.
Комментариев нет:
Отправить комментарий