C program, bitpacker and its reverse app | cs 240 | Purdue University

Suppose a text file contains ASCII characters ‘0’ and ‘1’ representing bits in human readable form. For example, test.txt may contain 111111110000000 which means its size is 16 bytes. A simple method for compressing the file by a factor of 8 is to represent a block of 8 ‘0’ or ‘1’ ASCII characters as a single byte. Thus test.txt which is 16 bytes long can be compressed into a file that is 2 bytes long where the first byte contains all 1’s and the second byte all 0’s. The resultant compressed file is a binary file since the first byte is not an ASCII character.

Code an app, bitpacker, that reads from stdin the input filename which follows the same specification as Problem 3. However, instead of using getchar(), use the library function fgets() whose the second argument allows specifying how many bytes, at most, should be read which helps prevent array overrun. Process the data in the input file 8 characters at a time by reading them into a 1-D array, char rawdat[8]. Compact the eight ‘0’ and ‘1’ characters in rawdat[] into a single byte using the bit processing techniques discussed in class. Write the resultant byte into an output file with suffix “.P”. For the above example, test.txt.P. We will allow the size of the input file not to be a multiple of 8. Since we are compacting 8 ASCII characters ‘0’ and ‘1’ into a single byte, we will use padding to handle files whose size is not a multiple of 8. For example, if text file test1.dat contains characters 1111111100000000111 (file size is 19 bytes), we will pad the last three characters 111 with 00000 so that the byte containing bit values 11100000 is written to test1.dat.P. To note that we padded the original data with five 0 bit values, we will change the suffix of the output file to test1.dat.P5. For test.txt where no padding was needed, the output filename will be test.txt.P0. Thus the last character of the filename specifies how much padding (0-7) was added.

Code bitpacker as a single main() function in main.c . Test and verify that it works correctlyCode an app, bitunpacker, that performs the reverse operation of bitpacker. bitunpacker reads the input filename from stdin using fgets() and checks that the suffix ends with .P[0-7] where [0-7] means that the last character must one of the digits 0, 1, …, 7. Strip the suffix in the name of the output file. Implement the app as a single main() function in main.c . Test and verify that it works correctly. 

all two programs must run within its functions using mac ios terminal and Linux system. 







Calculate Your Essay Price
(550 words)

Approximate price: $22

Calculate the price of your order

550 words
We'll send you the first draft for approval by September 11, 2018 at 10:52 AM
Total price:
$26
The price is based on these factors:
Academic level
Number of pages
Urgency
Basic features
  • Free title page and bibliography
  • Unlimited revisions
  • Plagiarism-free guarantee
  • Money-back guarantee
  • 24/7 support
On-demand options
  • Writer’s samples
  • Part-by-part delivery
  • Overnight delivery
  • Copies of used sources
  • Expert Proofreading
Paper format
  • 275 words per page
  • 12 pt Arial/Times New Roman
  • Double line spacing
  • Any citation style (APA, MLA, Chicago/Turabian, Harvard)

Our guarantees

Delivering a high-quality product at a reasonable price is not enough anymore.
That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.

Money-back guarantee

You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.

Read more

Zero-plagiarism guarantee

Each paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.

Read more

Free-revision policy

Thanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.

Read more

Privacy policy

Your email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.

Read more

Fair-cooperation guarantee

By sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.

Read more

Order your essay today and save 10% with the coupon code: best10