Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 115
#1

перевессти байты в слово - C++

10.02.2012, 18:24. Просмотров 860. Ответов 8
Метки нет (Все метки)

привет)))есть массив байтов(шестнадцатеричный) 53 48 4f 52 54 и т.д., есть признак того, что этому массиву соответсвует либо int, либо float, либо вообще целое слово(char[] ), либо insigned int. нужно их перевести в слово,int ,float и т.е. какое слово соответсвует этому набору байтов, кодировка ANSI, какая функция все это переводит...скажите плиз))))на языке С/С++.

Добавлено через 1 минуту
я сократил значения массива, впереди еще стоит 0x00
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2012, 18:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос перевессти байты в слово (C++):

В тексте заменить слово А(любое слово) на слово В(любое слово). А и В разной длинны - C++
Не могу сообразить как написать программу: Пользователь вводит текст Необходимо замениь слово А(любое слово) на слово В(любое...

Упаковка в байты - C++
Можно ли упаковать массив bitset допустим из 100 тысяч битов в байты, чтобы записать это дело в файл или можно записывать сразу в файл(но...

Различные байты - C++
помогите, организовать цикл в котором перебираются все возможные варианты байт!! т.е составить массив где первым байтом будет 0x00 а...

Поменять байты - C++
Есть задача: дано число long int получить другое число путем перестановки двух ПОСЛЕДНИХ байтов с двумя ПЕРВЫМИ байтами. void...

Упорядочить байты - C++
Помогите додумать. Нужны упорядочить байты в порядке возрастания количества еденичных битов в них(ввод в шестнадцетиричнйо системе). ...

Первые байты - C++
Задача вот в чем, надо получить 3 первых байта из файла. Подскажите как это сделать ?

8
HomeR_J_SimpsoN
59 / 59 / 2
Регистрация: 15.10.2010
Сообщений: 356
10.02.2012, 18:32 #2
Я раз 5 перечитал... Не понял чего Вы хотите.

У Вас есть массив. Данные могут быть int, unsigned int, char[], float
Это ладно, еще вменяемо...
А вот это...

Цитата Сообщение от dqrest Посмотреть сообщение
нужно их перевести в слово,int ,float и т.е. какое слово соответсвует этому набору байтов
Я не понимаю. Проставьте какие нибудь связки меж словами дополнительные, что ли...
0
MaxxximyM
18 / 2 / 1
Регистрация: 31.08.2011
Сообщений: 132
10.02.2012, 19:59 #3
Тоесть надо сопоставить шестнадцатеричному коду символы из ANSI?
0
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 115
10.02.2012, 20:03  [ТС] #4
да, нужно сделать перекодировку символов в из 16 системы с анси-кодировку, учитывая признак(float,int, char*)
0
HomeR_J_SimpsoN
59 / 59 / 2
Регистрация: 15.10.2010
Сообщений: 356
10.02.2012, 20:12 #5
Цитата Сообщение от dqrest Посмотреть сообщение
нужно сделать перекодировку символов в из 16 системы с анси-кодировку, учитывая признак(float,int, char*)
Странно Вы мысли формулируете...
Что значит учитывая признак, поясните, приведите пример
0
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 115
10.02.2012, 20:20  [ТС] #6
00 04 45 61 73 74 - East

00 04 57 65 73 74 - West

00 05 4e 6f 72 74 68 - North

1 b 2 элемент массива- кол-во байт, признак char *

00 08 00 02 00 03 00 04 00 05 int[0]=2, int[1]=3, int[2]=4, int[3]=5 признак int
0
HomeR_J_SimpsoN
59 / 59 / 2
Регистрация: 15.10.2010
Сообщений: 356
10.02.2012, 20:48 #7
Если ты будешь писать вот так
Цитата Сообщение от dqrest Посмотреть сообщение
1 b 2 элемент массива- кол-во байт, признак char *
тебе здесь никто не поможет.

Это то же самое, если бы те предложили разобрать какую нить дизассемлированную прогу, при этом ты не знал бы ни ассемблера, ни сути проги, ничего.
Формулируй мысль нормально!!!

А чтоб получить скажем
Цитата Сообщение от dqrest Посмотреть сообщение
00 04 45 61 73 74 - East
достаточно тупо вывести его в строку, например так

C++
1
2
3
char s[255];
for( int i = 2; i < masSize; i++ )
  s[i] = mas[i];
Естественно предварительно свитчем отловить нужный флаг, я так понял это 00 04 для строки.

То есть тупо перевести численный массив в символьный, не меняя ничего.
Больше я ничего не понял из твоих суждений.
0
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
10.02.2012, 20:54 #8
немного быдлокода)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
union wtf {
    int integer;
    unsigned int uinteger;
    float floatingpoint;
    char chararray[4];
};
 
int main()
{
    wtf u;
    u.chararray[0]='K';
    u.chararray[1]='f';
    u.chararray[2]='_';
    u.chararray[3]='\0';
    std::cout<<u.floatingpoint<<"\n"<<u.integer<<"\n"<<u.uinteger<<"\n";
}
ну а для отметки о типе можно этот юнион засунуть в структуру.
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,187
10.02.2012, 21:02 #9
C++
1
2
3
unsigntd char array[4];
int *m=(int*) array;
float *f=(flat*)array;
это???
0
10.02.2012, 21:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2012, 21:02
Привет! Вот еще темы с ответами:

байты в строку - C++
как можно перевести 4 байта F1 08 25 12 а строку А1082512 ?

Конвертация из бит в байты - C++
есть битовый массив bitset, заполненый определённым образом. есть char* bytes далее мне понадобилось из массива битов сделать массив...

Достать байты из переменной - C++
есть некий класс\структура. Например: class CLScls { private: int a, b, c; char d; string str; ...

Байты бинарных данных - C++
Могут ли в числе байт изображения быть отрицательные байты со значение -1, -100 и так далее? Или бинарные данные могу содержать только...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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