Вопросы по С/С++ (СИ)
Re: Вопросы по С/С++ (СИ)
там сообщения вида $7E$01$команда(0х31,0х32и тд)$кс(xor команды)
- Реклама
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Вам уже все сказали и показали
если в команде один символ, то контроль такой же как и символ, если несколько смотрите мой прошлый пост.
И не нужно путать пакет с сообщением.Сообщение это та полезная информация, что передается, остальное это служебные дополнения.
Сообщением в вашем случае является код команды длина его равна одному байту значит кс такая как и сообщение, если не один, то формула вам известна( смотрим предыдущий мой пост)
если в команде один символ, то контроль такой же как и символ, если несколько смотрите мой прошлый пост.
И не нужно путать пакет с сообщением.Сообщение это та полезная информация, что передается, остальное это служебные дополнения.
Сообщением в вашем случае является код команды длина его равна одному байту значит кс такая как и сообщение, если не один, то формула вам известна( смотрим предыдущий мой пост)
Re: Вопросы по С/С++ (СИ)
Тупой вопрос. А как в С пишутся бинарные константы? 0xEE - шестнадцатеричные, 077 - восьмеричные... А для бинарных?
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
-
juzik
- Встал на лапы
- Сообщения: 128
- Зарегистрирован: Пт сен 23, 2011 23:49:20
- Откуда: Симферополь, Украина
Re: Вопросы по С/С++ (СИ)
Не все компиляторы поддерживают бинарные константы, но те, что понимают, ожидают такое на входе: 0b11001010
- DrGandalf
- Встал на лапы
- Сообщения: 110
- Зарегистрирован: Пн дек 03, 2012 19:31:53
- Откуда: Санкт-Петербург
Re: Вопросы по С/С++ (СИ)
Никак.uldemir писал(а):Тупой вопрос. А как в С пишутся бинарные константы? 0xEE - шестнадцатеричные, 077 - восьмеричные... А для бинарных?
- Реклама
-
juzik
- Встал на лапы
- Сообщения: 128
- Зарегистрирован: Пт сен 23, 2011 23:49:20
- Откуда: Симферополь, Украина
Re: Вопросы по С/С++ (СИ)
Для уважаемого DrGandalf: http://gcc.gnu.org/onlinedocs/gcc/Binary-constants.html
- DrGandalf
- Встал на лапы
- Сообщения: 110
- Зарегистрирован: Пн дек 03, 2012 19:31:53
- Откуда: Санкт-Петербург
Re: Вопросы по С/С++ (СИ)
Фи, это не ANSI Cjuzik писал(а):Для уважаемого DrGandalf: http://gcc.gnu.org/onlinedocs/gcc/Binary-constants.html
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: Вопросы по С/С++ (СИ)
для уважаемого juzik: в GCC как и в CVAVR нестандартный Си. Вопрос был именно про Си, а не про GCC.
Ставим плюсы: )
-
juzik
- Встал на лапы
- Сообщения: 128
- Зарегистрирован: Пт сен 23, 2011 23:49:20
- Откуда: Симферополь, Украина
Re: Вопросы по С/С++ (СИ)
Находясь в форуме про программирование под МК логично было бы предположить именно эти версии компиляторов. Если бы мы были в форуме "стандарты ANSI C" тогда я бы с вами полностью согласился.
И прежде, чем критиковать обратите внимание на
И прежде, чем критиковать обратите внимание на
juzik писал(а):Не все компиляторы поддерживают бинарные константы
Re: Вопросы по С/С++ (СИ)
Пока я ковыряюсь в IAR. Там фокус с 0b0001, к сожалению, не проходит.
Собственно мне нужно для этого:
Собственно мне нужно для этого:
Код: Выделить всё
switch (enc_state) {
// Шаг вперед 1110 -> 1000 -> 0001 -> 0111
// Шаг назад 1101 -> 0100 -> 0010 -> 1011
// запрещенные комбинации 0011, 1100, 0110, 1001
case 0x03: ;
case 0x06: ;
case 0x09: ;
case 0x0C: ;
// нет движения 1111, 1010, 0101, 0000
case 0x00: ;
case 0x05: ;
case 0x0A: ;
case 0x0F: ;
default: ;
}А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Re: Вопросы по С/С++ (СИ)
Бинарные константы это расширение языка Си.
Добавьте gcc ключики -Wall -pedantic -pedantic-errors -std=iso9899:1999 и увидите "error: binary constants are a GCC extension".
На тему ANSI C, "Фи" и "не спортивно" - Как программировали Curiocity. Кто не знает, Curiocity ([къюриосити], "любопытство", "любознательность") это марсоход.
(Кто понимает английский - видео смотреть обязательно!
).
Добавьте gcc ключики -Wall -pedantic -pedantic-errors -std=iso9899:1999 и увидите "error: binary constants are a GCC extension".
На тему ANSI C, "Фи" и "не спортивно" - Как программировали Curiocity. Кто не знает, Curiocity ([къюриосити], "любопытство", "любознательность") это марсоход.
(Кто понимает английский - видео смотреть обязательно!
Последний раз редактировалось Kavka Вт дек 11, 2012 07:34:07, всего редактировалось 1 раз.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
-
juzik
- Встал на лапы
- Сообщения: 128
- Зарегистрирован: Пт сен 23, 2011 23:49:20
- Откуда: Симферополь, Украина
Re: Вопросы по С/С++ (СИ)
Я не писал под IAR, но может ему надо сказать как-то использовать имеено C99? Тогда по идее и бинарные константы должны появиться.
Re: Вопросы по С/С++ (СИ)
Ну не все ведь под Гнутым Си живут. Анси Си не знает такого формата. Посмотрите в сторону спецификатора формата в printf. Уж он бы поддержал, если бы был такой стандарт.juzik писал(а):Для уважаемого DrGandalf: http://gcc.gnu.org/onlinedocs/gcc/Binary-constants.html
С уважением,
Виктор.
Виктор.
Re: Вопросы по С/С++ (СИ)
Имеется десятичное число, например 45. Как его перевести в 16-тиричное 0x45? Просто дописать впереди "0х" текстом не помогает 
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Калькулятор Билла хорошо это делает. Набираем число и жмём "hex".
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Вопросы по С/С++ (СИ)
16-тиричное 0x45 это на самом деле десятичное 69masmax писал(а):Как его перевести в 16-тиричное 0x45?
+1 к виндовскому калькулятору. Хоть какой-то прок от него.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
-
Tolmi
- Говорящий с текстолитом
- Сообщения: 1658
- Зарегистрирован: Вс дек 11, 2011 05:25:04
- Откуда: Киев, Украина
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Число, оно всегда число, независимо от системы исчисления.
И 45(10) тождественно равно числу 0x2D(16) или 00101101(2)
Никуда его переводить не надо. А вот символьное представление числа может быть разным.
И 45(10) тождественно равно числу 0x2D(16) или 00101101(2)
Никуда его переводить не надо. А вот символьное представление числа может быть разным.
In theory, theory and practice are the same. In practice, they're not.
Re: Вопросы по С/С++ (СИ)
Калькулятора билла нет в AtMega128 
Пишу прошивку для микроконотроллера. Команды к нему могут прийти двумя путями: нажатием кнопок (на выходе получаем код кнопки 45) или через RS-232 с внешнего устройства (генерирует код 0x45). События вызываются одни и теже поэтому для упрощения их обработки я хочу просто привести числа к одному виду и обрабатывать вместе события.
Протокол стандартный и зашит во многие устройства, поэтому изменять команду 0x45 на команду 0x69 очень геморно. Коды кнопок тоже не переделать уже, это в плате завязано. А плата массовая.
Пишу прошивку для микроконотроллера. Команды к нему могут прийти двумя путями: нажатием кнопок (на выходе получаем код кнопки 45) или через RS-232 с внешнего устройства (генерирует код 0x45). События вызываются одни и теже поэтому для упрощения их обработки я хочу просто привести числа к одному виду и обрабатывать вместе события.
Протокол стандартный и зашит во многие устройства, поэтому изменять команду 0x45 на команду 0x69 очень геморно. Коды кнопок тоже не переделать уже, это в плате завязано. А плата массовая.
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: Вопросы по С/С++ (СИ)
прибавляйте к коду нажимаемой кнопки число 24 и будет вам счастье)
4510 + 2410 = 6910
6910 = 4516 = 0x45

4510 + 2410 = 6910
6910 = 4516 = 0x45
Ставим плюсы: )
Re: Вопросы по С/С++ (СИ)
Ну 45 я привел для примера. Есть и другие коды клавиш 
Ладно видимо это задача не имеет простого решения. Тогда проще вешать гирлянды из условий, как сейчас и сделано. Всё работает, только код не очень красивый.
Ладно видимо это задача не имеет простого решения. Тогда проще вешать гирлянды из условий, как сейчас и сделано. Всё работает, только код не очень красивый.


