Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Строковые метаморфозы, как? 
V
    Опции темы
Filin88
  Дата 12.3.2009, 14:24 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



Стоит задача на С. Есть два char`а 0 и 1. Их нужно преобразовать к шестнадцатиричному виду 0х01 и для проверки сравнить. Я с С мало работал и напрочь запутался с форматами. Покажите как это правильно делается. Заранее спасибо!
PM MAIL   Вверх
mrbrooks
Дата 12.3.2009, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 2
Всего: 306



Filin88, тут достаточно привести символы к целому типу, а уж сравнивать абсолютно без разницы - в восьмеричном, десятичном, шестнадцатиричном или двоичном виде.
PM MAIL   Вверх
Filin88
Дата 12.3.2009, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



В любом виде - это прекрасно. А как сложить два чара в один массив, не создавая при этом новый?
PM MAIL   Вверх
mrbrooks
Дата 12.3.2009, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 2
Всего: 306



Цитата(Filin88 @  12.3.2009,  15:01 Найти цитируемый пост)
А как сложить два чара в один массив, не создавая при этом новый? 

 
Поясни.
PM MAIL   Вверх
Dem_max
Дата 12.3.2009, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



Код

char i = 0x01;
char j = 0x04;
char k = 0x05;
i = i + j;
if(i == k) ShowMessage("равно");
   else ShowMessage("Не равно ");


char i1 = 1;
char j1 = 4;
char k1 = 5;
i1 = i1 + j1;
if(i1 == k1) ShowMessage("равно");
   else ShowMessage("Не равно ");

char i2 = 00000001;
char j2 = 00000100;
char k2 = 00000101;
i2 = i2 + j2;
if(i2 == k2) ShowMessage("равно");
   else ShowMessage("Не равно ");


Это сообщение отредактировал(а) Dem_max - 12.3.2009, 15:33


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
mrbrooks
Дата 12.3.2009, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 2
Всего: 306



Dem_max, 
а если 
Код

char i = 0xFF;
char j = 0xFF;

PM MAIL   Вверх
GoldFinch
Дата 12.3.2009, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 15
Всего: 26



mrbrooks, смотря что хочешь получить, то и получишь
мож ты хеш считаешь, там переполнение  - самое то
PM MAIL ICQ   Вверх
Dem_max
Дата 12.3.2009, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



mrbrooks, 
ну получишь 0хFE


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Filin88
Дата 12.3.2009, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



Нет, немного не то... На примере:
В коммандную строку вводятся два числовых символа (пример 69), на самом деле машина не сращивает что это-одно число в шестнадцатиричной форме, а думает что 2  smile , но я то знаю что оно одно  smile , мне нужно их переформатить в шестнадцатиричное число (0х69) и потом сравнить для правильности. Вот что я спрашивал. Как два этих символа совокупить?  smile 

Это сообщение отредактировал(а) Filin88 - 12.3.2009, 15:56
PM MAIL   Вверх
GoldFinch
Дата 12.3.2009, 15:59 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 15
Всего: 26



гугли "str to hex"
PM MAIL ICQ   Вверх
Dem_max
Дата 12.3.2009, 16:00 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



Цитата

мне нужно их переформатить в шестнадцатиричное число (0х69) и потом сравнить для правильности. 

Опять двадцать пять, учи мат часть и представление чисел в компьютере.


Это сообщение отредактировал(а) Dem_max - 12.3.2009, 16:02


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
inside_pointer
Дата 13.3.2009, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 9.3.2008

Репутация: 5
Всего: 12



Код

    char num[3];
    int n;

    sprintf(num, "%c%c\0", '6', '9');
    sscanf(num, "%x", &n);
    printf("%#.2x %d\n", n, n);


Это сообщение отредактировал(а) inside_pointer - 13.3.2009, 23:04
PM MAIL   Вверх
Filin88
  Дата 14.3.2009, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



Усе... До меня дошло! Всем спасибо! smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0569 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.