Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
dqrest
4 / 4 / 0
Регистрация: 06.01.2012
Сообщений: 115
1

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

10.02.2012, 18:24. Просмотров 917. Ответов 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
Ответы с готовыми решениями:

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

Упаковка в байты
Можно ли упаковать массив bitset допустим из 100 тысяч битов в байты, чтобы...

Упорядочить байты
Помогите додумать. Нужны упорядочить байты в порядке возрастания количества...

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

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

8
HomeR_J_SimpsoN
59 / 59 / 8
Регистрация: 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
4 / 4 / 0
Регистрация: 06.01.2012
Сообщений: 115
10.02.2012, 20:03  [ТС] 4
да, нужно сделать перекодировку символов в из 16 системы с анси-кодировку, учитывая признак(float,int, char*)
0
HomeR_J_SimpsoN
59 / 59 / 8
Регистрация: 15.10.2010
Сообщений: 356
10.02.2012, 20:12 5
Цитата Сообщение от dqrest Посмотреть сообщение
нужно сделать перекодировку символов в из 16 системы с анси-кодировку, учитывая признак(float,int, char*)
Странно Вы мысли формулируете...
Что значит учитывая признак, поясните, приведите пример
0
dqrest
4 / 4 / 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 / 8
Регистрация: 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 / 12
Регистрация: 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
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,944
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

Поменять байты
Есть задача: дано число long int получить другое число путем перестановки двух...

Различные байты
помогите, организовать цикл в котором перебираются все возможные варианты...

Достать байты из переменной
есть некий класс\структура. Например: class CLScls { private: ...


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

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

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