HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра

Конвертировать Hex-String в Char [ C++ ]
  #1  
Старый 12.07.2007, 18:59
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


Question Конвертировать Hex-String в Char [ C++ ]

Имеется,к примеру, следующая строка:
String A = "2D";
Как превратить это в unsigned char, т.е. чтобы получить:
unsigned char B = 0x2D;

В общем из текста "2D" получить число 0x2D , Подскажите плз

Последний раз редактировалось xqwerx; 12.07.2007 в 19:45..
 

  #2  
Старый 12.07.2007, 19:39
Ni0x
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
Провел на форуме:
2009677

Репутация: 472
По умолчанию

>>В общем из текста "2D" получить число 0x2D
функция atoi() тебе в помощь
 

  #3  
Старый 12.07.2007, 19:46
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


По умолчанию

Ni0x Дай примерчик! На Builder C++ будет работать?
 

  #4  
Старый 12.07.2007, 19:52
NetMan
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
Провел на форуме:
1089794

Репутация: 134
По умолчанию

 

  #5  
Старый 12.07.2007, 20:04
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


По умолчанию

NetMan - Немного не то!
Ni0x - atoi() - это AnsiString To Integer ?

String A = "2D";
unsigned char B = atoi(A);

Дает нулевой результат в unsigned char B!
Если же взять строку "22" к примеру, то в получим в unsigned char B 0x16 , а не 0x22 как хотелось бы...
 

  #6  
Старый 12.07.2007, 20:16
NetMan
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
Провел на форуме:
1089794

Репутация: 134
По умолчанию

Смотри здесь, правда тебе придётся немножко переделать.
 

  #7  
Старый 12.07.2007, 20:20
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


Unhappy

NetMan спасибо ! Я так не хотел отдельную функцию писать

Мне что-то не вериться, что С++ такой богатый и функциональный язык, а такой казалось бы простой процедуры конвертации как-то выходит и нет
 

  #8  
Старый 12.07.2007, 20:39
Ni0x
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
Провел на форуме:
2009677

Репутация: 472
По умолчанию

Цитата:
Ni0x - atoi() - это AnsiString To Integer ?
Это для конвертации char, в сишном рантайме есть целый набор функций для конверта разных типов данных.
Цитата:
String A = "2D";
unsigned char B = atoi(A);
дело в том что string тип данных из std(библиотека заточена под С++), а atoi() предназначена для работы с char. Для определения строк лучше используй в зависимости от случая:
char *str="antichat";
char str[]="antichat";
а string не рулит
 

  #9  
Старый 12.07.2007, 20:41
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

sscanf юзай:

string hex = "0x22";
unsigned char byte;

sscanf( hex.c_str(), "0x%x", &byte);

// теперь byte = 0x22
 

  #10  
Старый 12.07.2007, 20:53
NetMan
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
Провел на форуме:
1089794

Репутация: 134
По умолчанию

Можно заюзать функцию strtol:
Код:
   string str = "2A";
   char *endptr;
   unsigned char lnumber;

   lnumber = strtol(str.c_str(), &endptr, 16);
   printf("string = %s  long = %x\n", str.c_str(), lnumber);
 
Закрытая тема



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодинг(брут) ...ъХ... PHP 12 11.04.2006 02:10
Компиляторы Dimann С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 34 20.03.2006 21:23
софт для удаленного сервера _lolik_ Уязвимости 6 05.02.2006 10:58



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ