Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- using namespace std;
- void packArray(void* src, uint8_t* dst, int baseShift)
- {
- for (int i = 0, bytes=baseShift; i < 20; i++)
- {
- if (i % 4 == 0 and i >0) bytes +=4;
- dst[bytes++] = ((uint8_t*)src)[i];
- }
- }
- void unpackArray(uint8_t* src, void* dst, int baseShift)
- {
- for (int i = 0, bytes=baseShift; i < 20; i++)
- {
- if (i % 4 == 0 and i >0) bytes +=4;
- ((uint8_t*)dst)[i] = src[bytes++];
- }
- }
- int main()
- {
- int* arrI = new int[5] { 1,2,3,4,5 };
- float* arrF = new float[5] { 0.01,0.02,0.03,0.04,0.05 };
- uint8_t* arrB = new uint8_t[40];
- packArray(arrI,arrB,0);
- packArray(arrF,arrB,4);
- delete[] arrI;
- delete[] arrF;
- for (int i = 0; i < 10; i++)
- {
- if (i % 2 != 0 and i > 0)
- {
- cout << ((float*)arrB)[i] << endl;
- }
- else
- {
- cout << ((int*)arrB)[i] << endl;
- }
- }
- cout << endl;
- arrI = new int[5] {0};
- arrF = new float[5] {0};
- unpackArray(arrB, arrI, 0);
- unpackArray(arrB, arrF, 4);
- delete[] arrB;
- for (int i = 0; i < 10; i++)
- {
- if (i % 2 != 0 and i > 0)
- {
- cout << arrF[i/2] << endl;
- }
- else
- {
- cout << arrI[i/2] << endl;
- }
- }
- delete[] arrI;
- delete[] arrF;
- }
Advertisement
Add Comment
Please, Sign In to add comment