15,882,113 members
See more:
Suppose i have two binary values 01000100 and 01000010.
I want to compress them like this:

```01000100 = 1
01000010 = 0```

After compress the 2bytes would be converted to 2bits
and decompress them like:

```1 = 01000100
0 = 01000010```

After decompress the 2bits would be converted to 2bytes

Actually i want to compress 2byte(binary) to 2bits.And after decompress the data again convert to 2byte.
How can i do it in visual basic. I am a new in computer programming
Posted
Sergey Alexandrovich Kryukov 5-Feb-13 14:13pm
"Anyone knows C++"?! Well, well... :-)
"Compress"?! Total gibberish, sorry. You don't understand something very basic, but I cannot figure out what...
—SA
anonymous10 6-Feb-13 10:58am
i have only 2 values 01000100 and 01000010 not 65,532 or 256.I want to make compressor which holds only 2 values and also decompressor.
Sergey Alexandrovich Kryukov 6-Feb-13 11:03am
You apparently have no idea what is a number, don't see a difference between string and number. Your question makes no sense at all. You cannot get help before you understand the very basics, but not on this "question" which is based on some most basic misconceptions.
—SA
anonymous10 6-Feb-13 12:24pm
ok. let see i chat online with my friends daily.i observe that the character like: "this" "is" "a" "why" etc.These words contains 8bits per character.i want to make this = 1,is = 0,a = 10,why = 01 in binary. like:this = 4bytes when i typed this to anyone on chat the only one bit travel through internet and again in his system it will become 4bytes. may know you understand something.
Sergey Alexandrovich Kryukov 6-Feb-13 12:35pm
No need to understand this... this is helpless...
—SA

## Solution 2

Pretty simple if you only have 2 input and 2 output values.

C++
```char Compress(char in)
{
if(68 == in) return 1;  // 01000100 -> 1
if(66 == in) return 0;  // 01000010 -> 0
return -1;              // invalid
}

char Decompress(char in)
{
if(1 == in) return 68;  // 1 -> 01000100
if(0 == in) return 66;  // 0 -> 01000010
return -1;              // invalid
}```

Your problem description I think was the problem here...

anonymous10 7-Feb-13 8:15am
Thanks man finally the person who understand me(after 2days):laugh
anonymous10 7-Feb-13 8:30am
But how can i read these binary values from files and compress them.
For example:
I have a text file in my hard disk in which i have only two numbers 68 and 66.
i want to load this file in c++ then compress this file and save a new file in my hard disk.
I now "fstream" in c++ but how can i use your method with this.
H.Brydon 7-Feb-13 12:34pm
You are asking questions that are so fundamental it is hard to answer them. You really need to pursue your training books/manuals/instructor. What you are asking about here should be found in "input/output" or "I/O" section of any programming book.
anonymous10 7-Feb-13 13:18pm
I just want to read some specific numbers.In text file i have numbers from 1 to 100.i want to read some specific numbers like 8,9,10 from text file.
anonymous10 7-Feb-13 8:34am
Actually i am c++ beginner and i ask this question just for knowledge.

## Solution 1

You can't do it - except in the trivial case you are giving already which is easy:
```1) Is value equal to 0?
2) if yes, output value is 01000010
3) if no, output value is 01000100```

Two bits can only hold 4 values:
```00
01
10
11```

So the other 252 possible combinations you can get into 8 bits have nowhere to be stored. Compression algorithms work by finding patterns in numbers (in essence) and require an amount of overhead to store information about the compression method - with only eight bits of data there is insufficient information for a pattern to be determined - and with overhead you would end up with a longer output than input!

Klaus-Werner Konrad 6-Feb-13 10:36am
Worse - he wants to compress 2 bytes to 2 bits, so there are 65,532 other possible values :-)
anonymous10 6-Feb-13 10:52am
i have only 2 values 01000100 and 01000010 not 65,532 or 256.I want to make compressor which holds only 2 values and also decompressor.
OriginalGriff 6-Feb-13 11:03am
if you only have two values, that's not a compressor - it's a bit test: 0 or 1.
anonymous10 6-Feb-13 11:13am
what i am trying to say is that i have only two binary values.01000100 and 01000010.
First in compressor i want two make then equal 1 and 0.
like:
01000100 = 1
01000010 = 0

after that the data which is stored in harddisk is 2bits.
after decompression it will become again 2bytes.

like:
1 = 01000100
0 = 01000010
OriginalGriff 6-Feb-13 11:16am
Yes I understand that - but it's just a comparison / bit test - there is no compression / decompression involved!
What part of it is giving you problems?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Top Experts
Last 24hrsThis month
 Richard MacCutchan 80 Rick York 20 Graeme_Grant 20 KarstenK 10 Pete O'Hanlon 10
 Pete O'Hanlon 1,940 OriginalGriff 1,415 Graeme_Grant 895 Richard Deeming 853 Dave Kreskowiak 694

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900