![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
kefir01 |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 22.6.2007 Репутация: нет Всего: 2 |
Добрый день, друзья.
Никак не могу въехать в каком месте я дурак - глядите... Сразу прошу ссаными тряпками в поиск не гнать - похожего не нарыл (честно старался найти похожее) Есть такой код:
Если я записываю переменную test в виде
то получаю вывод 10110000, что собственно и хочу, однако если записываю в виде (char)10110000 получаю 00110000, что как вы можете понять вообще не айс. Запись в виде
то вообще схватываю четыре нуля. Причем неважно - с (char) или нет. Это сообщение отредактировал(а) kefir01 - 5.12.2013, 01:14 |
||||||
|
|||||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
||||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 11 Всего: 45 |
10110000 - обычное десятеричное число, никак не двоичное. Когда вы делаете (char)10110000, то от этого числа остаются только младшие 8 бит:
Увы, в C/C++ нет двоичного представления констант, но можно пользоваться шестнадцатеричным, как Вы и написали: -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
kefir01 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 22.6.2007 Репутация: нет Всего: 2 |
Все немного не так... На самом деле мне надо записать 20 байт по 8 бит каждый. Не совсем числа - скорее ключи управления...
Принимающая сторона тоже читает больше индивидуальные биты нежели десятеричные числа, которые они образуют. Совсем забыл упомянуть, что если
То принимающая сторона принимает запрос и в ответе возвращает 10110000, а если я записываю как-либо иначе - нет. Поэтому терять тут ничего нельзя. А за информацию спасибо, но проблемы это не решает. |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
kefir01, можно так инициализировать:
вместо тектовой константы, можно и std::string
Главное следите, чтобы строка состояла только из нолей и единичек, иначе программа выкинет исключение std::invalid_argument |
||||
|
|||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 11 Всего: 45 |
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
kefir01 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 22.6.2007 Репутация: нет Всего: 2 |
volatile, спасибо, в карму плюсанул. Так пишется правильно... Хоть конечно и не хочется пользоваться std для такиех вещей...
Я так еще подумал, что в принципе можно было бы в шестнадцатеричном представлении писать - то есть если у меня скажем есть последовательность типа 01011010, то никто не мешает записать это как 0x59, хотя в таком случае пришлось бы преобразования делать... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |