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

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

Восстановить пароль Регистрация
 
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 114
10.02.2012, 18:24     перевессти байты в слово #1
привет)))есть массив байтов(шестнадцатеричный) 53 48 4f 52 54 и т.д., есть признак того, что этому массиву соответсвует либо int, либо float, либо вообще целое слово(char[] ), либо insigned int. нужно их перевести в слово,int ,float и т.е. какое слово соответсвует этому набору байтов, кодировка ANSI, какая функция все это переводит...скажите плиз))))на языке С/С++.

Добавлено через 1 минуту
я сократил значения массива, впереди еще стоит 0x00
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2012, 18:24     перевессти байты в слово
Посмотрите здесь:

байты в строку C++
C++ Первые байты
C++ Конвертация из бит в байты
Различные байты C++
C++ Упаковка в байты
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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 и т.е. какое слово соответсвует этому набору байтов
Я не понимаю. Проставьте какие нибудь связки меж словами дополнительные, что ли...
MaxxximyM
18 / 2 / 1
Регистрация: 31.08.2011
Сообщений: 132
10.02.2012, 19:59     перевессти байты в слово #3
Тоесть надо сопоставить шестнадцатеричному коду символы из ANSI?
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 114
10.02.2012, 20:03  [ТС]     перевессти байты в слово #4
да, нужно сделать перекодировку символов в из 16 системы с анси-кодировку, учитывая признак(float,int, char*)
HomeR_J_SimpsoN
59 / 59 / 2
Регистрация: 15.10.2010
Сообщений: 356
10.02.2012, 20:12     перевессти байты в слово #5
Цитата Сообщение от dqrest Посмотреть сообщение
нужно сделать перекодировку символов в из 16 системы с анси-кодировку, учитывая признак(float,int, char*)
Странно Вы мысли формулируете...
Что значит учитывая признак, поясните, приведите пример
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 114
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
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 для строки.

То есть тупо перевести численный массив в символьный, не меняя ничего.
Больше я ничего не понял из твоих суждений.
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";
}
ну а для отметки о типе можно этот юнион засунуть в структуру.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2012, 21:02     перевессти байты в слово
Еще ссылки по теме:

C++ В тексте заменить слово А(любое слово) на слово В(любое слово). А и В разной длинны
Упорядочить байты C++
C++ Поменять байты

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
10.02.2012, 21:02     перевессти байты в слово #9
C++
1
2
3
unsigntd char array[4];
int *m=(int*) array;
float *f=(flat*)array;
это???
Yandex
Объявления
10.02.2012, 21:02     перевессти байты в слово
Ответ Создать тему
Опции темы

Текущее время: 11:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru