Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
49 / 33 / 9
Регистрация: 27.12.2017
Сообщений: 1,398
1

Запись констант в шестнадцатеричной системе

23.08.2019, 14:16. Показов 3180. Ответов 39
Метки нет (Все метки)

Сейчас изучаю библиотеки связанные с блютуз и вот такая интересная штука
почти везде используется 16-теричная система для записи в переменную ,зачем и почему?
вот примеры
C
1
2
3
4
5
uint8_t lap[3] = { 0x33, 0x8b, 0x9e };
-----------------------------------------------------
        ir->lap[0] = 0x33;
        ir->lap[1] = 0x8b;
        ir->lap[2] = 0x9e;
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.08.2019, 14:16
Ответы с готовыми решениями:

Вывод в шестнадцатеричной системе
Нужно написать программу, которая выводит символы от А до Z в таблице. Первый столбец - порядковый...

Перебор в шестнадцатеричной системе счисления
Здравствуйте, может кто подсказать, есть программа, которая перебирает числа в шестнадцатеричной...

Cout вывод числа в двоичной и шестнадцатеричной системе счисления
Помогите пожалуйста. Как сделать чтобы выводило не... 1 = 100000000000000000000000000000001, а...

Дана строка - запись числа в двоичной системе счисления. Преобразуйте ее в строку - запись числа в шестнадцатеричной системе счисления
Дана строка, представляющая собой запись числа в двоичной системе счисления. Преобразуйте ее в...

39
Модератор
Эксперт С++
10871 / 8990 / 5408
Регистрация: 18.12.2011
Сообщений: 24,030
23.08.2019, 15:09 2
Лучший ответ Сообщение было отмечено ReYalp как решение

Решение

В 16 системе можно понять, какие биты числа равны 1, а какие нулю.
Например, 0x33 это 00110011.
0
49 / 33 / 9
Регистрация: 27.12.2017
Сообщений: 1,398
23.08.2019, 16:46  [ТС] 3
zss, а что с этими битами делается ?
0
Модератор
Эксперт С++
10871 / 8990 / 5408
Регистрация: 18.12.2011
Сообщений: 24,030
23.08.2019, 16:51 4
В зависимости от задачи.
Возможно, каждый бит отвечает за состояние какого-то флага.
0
49 / 33 / 9
Регистрация: 27.12.2017
Сообщений: 1,398
23.08.2019, 17:05  [ТС] 5
Цитата Сообщение от zss Посмотреть сообщение
какие биты числа равны 1, а какие нулю.
zss, вот этот момент слегка не понятен,что значит какие биты числа? У нас есть число , в даном случае
Цитата Сообщение от zss Посмотреть сообщение
0x33
это 51 , 51 в двоичной системе это
Цитата Сообщение от zss Посмотреть сообщение
00110011
,но если я какой-то бит поменяю то это уже не будет 51
0
Продавец времени
5592 / 3057 / 706
Регистрация: 12.03.2015
Сообщений: 14,754
23.08.2019, 17:26 6
Цитата Сообщение от ReYalp Посмотреть сообщение
,но если я какой-то бит поменяю то это уже не будет 51
Ясен хрен, не будет.
Подрастёшь - поймёшь, для чего это нужно.

Запись констант в шестнадцатеричной системе
0
49 / 33 / 9
Регистрация: 27.12.2017
Сообщений: 1,398
23.08.2019, 17:40  [ТС] 7
Verevkin, я реально не понимаю что значит бит числа,каждое число имеет свое уникальное "отображение" как в 16-ти так и в 2 системе,у каждого разные биты "установлены"
0
Продавец времени
5592 / 3057 / 706
Регистрация: 12.03.2015
Сообщений: 14,754
23.08.2019, 17:49 8
Цитата Сообщение от ReYalp Посмотреть сообщение
я реально не понимаю что значит бит числа,каждое число имеет свое уникальное "отображение" как в 16-ти так и в 2 системе,у каждого разные биты "установлены"
Отодвинь эти вопросы на задний план.
Отодвинул - молодец. Теперь слушай дядю Колю и мотай на ус.
--------
Вся инфа в цифровой электронике хранится, обрабатывается и передаётся только в двоичном виде. А системы счисления - это только условные обозначения информации, для человеков.
Один бит - это неделимая частица инфы, кодирующая 2 возможных состояния чего-либо. Молекула ДНК, кстати, тоже несёт двоичный код: AT и CG (аденин-тимин) и (цитозин-гуанин).



Ещё вопросы есть?
0
Продавец времени
5592 / 3057 / 706
Регистрация: 12.03.2015
Сообщений: 14,754
23.08.2019, 17:55 9
Калькулятор есть у тебя?

Запись констант в шестнадцатеричной системе
0
49 / 33 / 9
Регистрация: 27.12.2017
Сообщений: 1,398
23.08.2019, 18:02  [ТС] 10
Verevkin, да я понимаю как выглядит 51 в 16-ти или 2 системе ,я это понимаю,я не понимаю зачем использовать 0x33 чтобы понять какие биты установлены если сразу можно использовать 51,просто для удобства?

Добавлено через 1 минуту
Verevkin,

Не по теме:

мне кажется Ваш юмор слишком простой и неуместный

0
Продавец времени
5592 / 3057 / 706
Регистрация: 12.03.2015
Сообщений: 14,754
23.08.2019, 18:08 11
Цитата Сообщение от ReYalp Посмотреть сообщение
я не понимаю зачем использовать 0x33 чтобы понять какие биты установлены если сразу можно использовать 51,просто для удобства?
Конечно, для удобства. Компьютеру-то пофиг, компилятор переведёт константу в двоичный вид на этапе препроцессора. Зато программёр сразу видит, что биты 0,1, 4 и 5 установлены. А что это значит - зависит от условия задачи.

Добавлено через 1 минуту
Цитата Сообщение от ReYalp Посмотреть сообщение
мне кажется Ваш юмор слишком простой и неуместный
Какой ещё юмор? Я про ДНК не шутил - можешь википедию покурить, если не веришь.
0
зомбяк
1531 / 1176 / 332
Регистрация: 14.05.2017
Сообщений: 3,815
23.08.2019, 18:08 12
Цитата Сообщение от ReYalp Посмотреть сообщение
не понимаю зачем использовать 0x33
Ну вот попробуй в уме преобразовать 51 в двоичную систему счисления. Я думаю тебе это займёт кууда больше времени, чем 0x33, зная что в двоичной системе 3 это 11, а разные цифры числа в 16-ричной системе отделяет по 4 разряда в двоичной (т.к. 16 = 2^4)
1
49 / 33 / 9
Регистрация: 27.12.2017
Сообщений: 1,398
23.08.2019, 18:12  [ТС] 13
TRam_, а нельзя сразу двоичную использовать?
0
зомбяк
1531 / 1176 / 332
Регистрация: 14.05.2017
Сообщений: 3,815
23.08.2019, 18:14 14
ReYalp, а ты попробуй не потеряться среди нулей и единиц. Или там запомнить нужную их последовательность, особенно, например, 32 разрядов (т.е. 32 ноликов и единиц, в сравнении с восемью в случае 16-ричного представления).
0
Продавец времени
5592 / 3057 / 706
Регистрация: 12.03.2015
Сообщений: 14,754
23.08.2019, 18:14 15
Цитата Сообщение от ReYalp Посмотреть сообщение
а нельзя сразу двоичную использовать?
Можно. И восьмеричную - тоже. Но 16-ричная удобнее.
0
49 / 33 / 9
Регистрация: 27.12.2017
Сообщений: 1,398
23.08.2019, 18:19  [ТС] 16
Verevkin, TRam_, а вообще зачем такой подход ? чем плохи к примеру просто флаги 1,2,3...?

Добавлено через 1 минуту
или в том примере эти флаги что-то значат для системы и именно такие значения должны быть использованы?
0
зомбяк
1531 / 1176 / 332
Регистрация: 14.05.2017
Сообщений: 3,815
23.08.2019, 18:23 17
ReYalp, тогда уже флаги типа

C++
1
(1<<10) + (1<<5) + (1<<4) + (1<<2) + (1<<0)
Но это длинно и не очень удобно.

Добавлено через 2 минуты
Цитата Сообщение от ReYalp Посмотреть сообщение
эти флаги что-то значат для системы
Естественно значат.
0
Продавец времени
5592 / 3057 / 706
Регистрация: 12.03.2015
Сообщений: 14,754
23.08.2019, 18:25 18
Цитата Сообщение от ReYalp Посмотреть сообщение
а вообще зачем такой подход ? чем плохи к примеру просто флаги 1,2,3...?
Зависит от условий задачи.
1 байт может хранить состояния 8 флагов. И с ними удобно будет работать через битовые операторы (&, |, ^, ~).
1
749 / 352 / 72
Регистрация: 10.06.2014
Сообщений: 2,371
23.08.2019, 18:32 19
ReYalp,
Например это число может быть начальным состоянием чего либо (чего именно - зависит от задачи).
И вот некая часть программы может читать/менять эти битики
В зависимости от того какой бит равен 1 а какой 0, у программы может быть разное "поведение" или она вообще может просто передавать эти данные другой программе для которой эти битики что-то значат.

Как выше говорили в таком формате наглядно видно какой бит чему равен (если есть понимание того как такое число выглядит в двоичной форме). Записывать сразу в двоичной это долго, а если записывать в десятичной, то представлять что там за битики стоят за этим числом уже не удобно.
1
49 / 33 / 9
Регистрация: 27.12.2017
Сообщений: 1,398
23.08.2019, 18:39  [ТС] 20
Undisputed, да это попнятно,но как по мне удобнее все таки использовать к примеру цифры от 0 до 9 или еще что-то,это было бы куда понятнее,чем то что я увидел когда начал учить.

Добавлено через 3 минуты
да,возможно для больших проектов это не подходит,но в моем примере там всего от силы 10 флагов таких
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2019, 18:39

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Запись в бинарный файл в шестнадцатеричной системе
в в шестнадцатеричной системе static void Main(string args) { string aplha...

Запись числа -2047 в шестнадцатеричной системе счисления
Нужно записать FFFFFFFFFFFFF801 с помощью 3 символов. Это возможно вообще?

Вывести запись в виде 4 знаков в шестнадцатеричной системе
напишите программу, используя процедуру, которая выводит на экран запись числа меньшего, чем...

Заменить каждый элемент списка на его запись в шестнадцатеричной системе счисления
Помогите пожалуйста! Дан список,содержащий запись целых неотрицательных чисел в двоичной системе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.