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

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

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

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

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

привет)))есть массив байтов(шестнадцатеричный) 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++
Задача вот в чем, надо получить 3 первых байта из файла. Подскажите как это сделать ?

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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++
есть битовый массив bitset, заполненый определённым образом. есть char* bytes далее мне понадобилось из массива битов сделать массив...

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

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

Упорядочить байты машинного слова - C++
Задание стоит так: Упорядочить байты четырьохбайтового машинного слова по возрастанию их значений, использовав подходящие структуры...


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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,735
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     перевессти байты в слово
Ответ Создать тему
Опции темы

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