Question: in c++ Write a compression function that reads in an array of numbers where each number is from 0 to 3 (2 bits). Compress into

in c++

Write a compression function that reads in an array of numbers where each number is from 0 to 3 (2 bits). Compress into a single 64-bit word then write out to output. 65 numbers in a, write out 3 numbers into output, the first two are full, and the last one has only a single value

uint64_t compress(const uint32_t in[], uint32_t len, uint64_t out[]){

};

main(){

uint32_t a[65];

uint64_t out[3] = {0,0,0};

for (int i = 0; i < 65; i++) {

a[i] = i % 4;

}

uint64_t out_len = compress(a, 65, out);

for (uint32_t i = 0; i < out_len; i++) {

cout << bitset<64>(out[i]) << '\t';

cout << ' ';

}

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!