Страницы

Поиск по вопросам

пятница, 13 декабря 2019 г.

Почему некоторые разработчкики записывают числа в 16-ричном представлении? (C#)

#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 бита в бинарном представлении, т.е. байт - две "сконкатенированных" шеснадцатиричных цифры. Это удобнее читать и записывать, чем ряды двоичных разрядов.

Комментариев нет:

Отправить комментарий