Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Светла
3 / 3 / 0
Регистрация: 22.03.2012
Сообщений: 15
#1

Как строки с шестнадцатеричным содержимым записать в биты char? - C++

22.03.2012, 21:23. Просмотров 680. Ответов 4
Метки нет (Все метки)

Доброго времени суток, Уважаемые!
Дано задание - сформировать приложение, с помощью которого необходимо записать шестнадцатеричные цифры, которые вводим на форме в компоненты Edit, выбираем из ComboBox, Memo(пока предполагаю использовать эти компоненты,потому как новичок и многого не знаю еще) в структуры с битовыми полями, например:
C++
1
2
3
4
typedef struct Struct {
  unsigned char   СС:    2;  
  unsigned char   FF:     6;  
} Struct_t;
Допустим в переменную CC нужно записать 0x01, который вываливался как один из вариантов из ComboBox. Я пробовала выбранный элемент ComboBox привести к int, а затем к char. Знаю, что без facepalm на это смотреть невозможно.
Посоветуйте пожалуйста, как записать правильно? Возможно, с использованием других компонент.. Пишу в Borland C++ Builder.
Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2012, 21:23     Как строки с шестнадцатеричным содержимым записать в биты char?
Посмотрите здесь:

Const char* и нулевые биты - C++
Столкнулась с такой проблемой: есть переменная типа string, например string str = "A"; Мне требуется расширить ее до 16 бит, для этого...

Написать функцию, меняющую в переменной типа char местами биты с номерами n и n+1 - C++
Написать функцию, меняющую в переменной типа char местами биты с номерами n и n+1 n вводится с клавиатуры Помогите, пожалуйста!

Как char записать в структуры? - C++
#include <conio.h> #include <iostream> #include <string> #include <fstream> using namespace std; //string buff; const int N =...

Как объединить 2 char и записать в string - C++
Как объединить 2 char и записать в string в файле находится строчка вида 012345 Все переменные принимаются правильно, как я понимаю...

Как записать char массив в конструкторе - C++
Подскажите, как записать char масив в кострукторе #include <iostream> #include <string.h> using namespace std; class RIELTER ...

Как записать Short в два char'a? - C++
Есть переменная типа short необходимо записать ее в чаровский массив... как то там через указатели как я хз((((

Как записать 16ричное число в char - C++
Всем доброго времени суток! Столкнулся с такой проблемой: мне нужно создать строку из 16ричных байтов. Проблема состоит в следующим: как...

Как записать значение типа double в char? - C++
Есть массив double massiv_str; Проверяем его и если 1,2 или 3 присваиваем соответствующее значение переменной s_out, кот орую будем потом...

Как записать и прочитать int (4 byte) из char[] - C++
Buffer.h #ifndef BUFFER_CPP_H #define BUFFER_CPP_H #include <vector> template <class T> class Buffer { ...

Char*. Как определить размер строки? - C++
Добрый день! Вопрос вроде бы на первый взгляд простой, но ответ на него найти не получается. Как определить разме строки? ...

Как скопировать содержимое строки char? - C++
У меня в структуре есть член структуры char* text; и const temp char* = CharToDouble(10) Что-то у меня не получается через strcat положить...

Как соединить три строки char в одну? - C++
Должно было получиться к примеру Документ 1.txt был открыт.Не вышло. char* String1="Документ "; char* String2=OpenDialog1->FileName;...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
23.03.2012, 01:08     Как строки с шестнадцатеричным содержимым записать в биты char? #2
в Борланде AnsiString ?
в общем можешь попробовать так:
перегоняешь в массив char через .str() (вроде так)
в переменную типа int можно из массива считать 16-ричную величину так:
C
1
2
3
char a[20]= "0x123";
int i;
sscanf(a,"%x",&i);
если я правильно понял вас.
Светла
3 / 3 / 0
Регистрация: 22.03.2012
Сообщений: 15
23.03.2012, 10:49  [ТС]     Как строки с шестнадцатеричным содержимым записать в биты char? #3
Спасибо за ответ, но в данном случае предполагается, что содержимое строки AnsiString записывается в один символ char. С массивом char проблем бы не возникло.
Я пробовала такой подход:

сама структура:
C
1
2
3
4
5
typedef struct Struct {
  unsigned char   СС:    2;  
  unsigned char   FF:    6;
  unsigned char  NN;
} Struct_t;
Попытки правильно записать информацию в char:

C
1
2
3
4
5
6
7
Struct_t g, g1;
 
 int h = StrToInt(CB1->Items->Strings[0]); // содержимое Strings[0] = "0x01";
 g.СС = (char)h;  // записывалось нормально
 
 int h1 = StrToInt(CB1->Items->Strings[0]);// содержимое Strings[0] = "0xFF";
 g1.NN = (char)h1;  // записывалась  буковка 'я' вместо '0xFF'
Направьте пожалуйста на правильный путь.
Driim
7 / 7 / 0
Регистрация: 29.03.2011
Сообщений: 81
23.03.2012, 11:51     Как строки с шестнадцатеричным содержимым записать в биты char? #4
А как вы смотрети что там записалась буковка "я"? Вообще char используется для кодирования букв и я почти уверен что 0xFF код "я", на самом деле в переменной записанно 0xFF но при выводе на экран он выводит символ код которого записан в переменной.
Светла
3 / 3 / 0
Регистрация: 22.03.2012
Сообщений: 15
23.03.2012, 14:12  [ТС]     Как строки с шестнадцатеричным содержимым записать в биты char? #5
Всем Спасибо, вопрос решен.
Driim, очевидное всегда сложно заметить, Благодарю!
Yandex
Объявления
23.03.2012, 14:12     Как строки с шестнадцатеричным содержимым записать в биты char?
Ответ Создать тему
Опции темы

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