Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/74: Рейтинг темы: голосов - 74, средняя оценка - 4.72
1 / 1 / 0
Регистрация: 20.11.2010
Сообщений: 8
1

Как преобразовать число в массив байт

16.12.2012, 21:34. Показов 14255. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
int n = 222333; // hex: 0003647D
нужно получить массив байт из переменной n вида:

C++
1
byte m[] = {0x00, 0x03, 0x64 ,0x7D}; // порядок не имеет значения ..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2012, 21:34
Ответы с готовыми решениями:

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

Преобразовать массив байт в десятичное число
Здравствуйте, товарищи! Есть массив байт byte bytes = { 48, 51, 48, 48 }; где элементы массива...

Как преобразовать int в массив байт?
Как преобразовать число типа int в массив байт, чтобы можно было из передать по последовательному...

Как преобразовать массив байт (16) в 4 uint
Добрый день Как быстро (и просто) преобразовать массив байт в 4 беззнаковых 32-битных числа? ...

7
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
16.12.2012, 21:36 2
Кастуйте к char*
0
1 / 1 / 0
Регистрация: 20.11.2010
Сообщений: 8
16.12.2012, 21:55  [ТС] 3
Вообщем есть прототип
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int number = 0x0069FB1F;
byte mass[4];
for(int i = 0; i < 4; ++i)
{
    mass[i] = ((char*)&number)[i];
    cout << hex << (int)mass[i] << endl;
}
/* Выводит:
1F
FB
69
0
*/
Но в массиве char символы, как их перевести в цифры?
C++
1
mass[i] = (int)mass[i]; // такое почему то не работает и byte
1
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
16.12.2012, 22:00 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <iomanip>
int main(){
    int n=0xFF5412E4;
    unsigned char barr[4];
    memcpy(barr,&n,sizeof(n));
    for(int i=0;i<sizeof(barr);++i){
        std::cout<<std::setbase(16)<<static_cast<unsigned int>(barr[i])<<std::endl;
    }
    std::cin.get();
    return 0;
}
1
1 / 1 / 0
Регистрация: 20.11.2010
Сообщений: 8
16.12.2012, 22:18  [ТС] 5
ну тут тоже самое, если сделать так
C++
1
cout << barr[1];
отобразится символ, мат. операции выполняются но все же хотелось массив byte
0
1 / 1 / 0
Регистрация: 20.11.2010
Сообщений: 8
16.12.2012, 22:53  [ТС] 6
Цитата Сообщение от daslex Посмотреть сообщение
это одно

Не по теме:

получить массив типа byte - это другое.
если будете правильно говорить, то будете гораздо быстрее получать ответы

в 1 посте что указанно?
byte m[] = {0x00, 0x03, 0x64 ,0x7D}; // порядок не имеет значения ..
даже с примером
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
16.12.2012, 23:01 7
Цитата Сообщение от [Alex
;3868665]отобразится символ, мат. операции выполняются но все же хотелось массив byte
перед выводом кастуйте к (unsigned int)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Зверство
#include <iostream>
#include <iomanip>
 
int main(){ 
    unsigned int n=0xFF5698FE;
    unsigned int arr[4];
    for(int i=0;i<sizeof(n);++i){
        arr[i]=(n<<((sizeof(n)-i-1)*8))>>((8*(sizeof(n)-1)));
    }
 
    for(int i=0;i<sizeof(n);++i)
        std::cout<<std::setbase(16)<<arr[i]<<" ";
 
    std::cin.get();
    return 0;
}
Добавлено через 46 секунд
Цитата Сообщение от [Alex
;3868857]byte
что имеется ввиду под byte?
C++
1
typedef unsigned char byte?
так разница в чем?
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
17.12.2012, 00:55 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//---------------------------------------------------------------------------
union A
{
 int i;
 char byte[4];
};
//---------------------------------------------------------------------------
int main()
{
using namespace std;
 
A a;
 
a.i= 0x0003647D;
 
for(int i=3; i>=0; i--)
    cout<< hex << (int)a.byte[i] <<" ";
 
cout<<endl;
system("pause");
return 0;
}
//---------------------------------------------------------------------------
0
17.12.2012, 00:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2012, 00:55
Помогаю со студенческими работами здесь

Как преобразовать unsigned long int в массив байт?
Здравствуйте нужно в CodeVisionAVR преобразовать переменную типа unsykned long int в массив из 4-х...

Дан массив из 6 байт. Посчитать количество байт число единиц, в которых не превышает 3.
Дан массив из 6 байт. Посчитать количество байт число единиц, в ко- торых не превышает 3. блин...

Дан массив из 9 байт. Рассматривая его как массив из 72 бит, посчитать число нулей в этом массиве
Код для задания -Дан массив из 9 байт. Рассматривая его как массив из 72 бит, посчитать число...

Дан массив из 9 байт расматривая его как массив 72 бит подсчитать число нулей в этом массиве.
Уважаемые форумчане мне очень нужна ваша помощь я обращаюсь к вам в первые по данной проблеме и...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru