user1731426
user1731426

Reputation:

How is data stored in a bit vector?

I'm a bit confused how a fixed size bit vector stores its data. Let's assume that we have a bit vector bv that I want to store hello in as ASCII.

So we do bv[0]=104, bv[1]=101, bv[2]=108, bv[3]=108, bv[4]=111.

How is the ASCII of hello represented in the bit vector?

Is it as binary like this: [01101000][01100101][01101100][01101100][01101111]
or as ASCII like this: [104][101][108][108][111]

The following paper HAMPI at section 3.5 step 2, the author is assigning ascii code to a bit vector, but Im confused how the char is represented in the bit vector.

Upvotes: 0

Views: 1146

Answers (1)

Bernhard Barker
Bernhard Barker

Reputation: 55609

Firstly, you should probably read up on what a bit vector is, just to make sure we're on the same page.

Bit vectors don't represent ASCII characters, they represent bits. Trying to do bv[0]=104 on a bit vector will probably not compile / run, or, if it does, it's very unlikely to do what you expect.

The operations that you would expect to be supported is along the lines of set the 5th bit to 1, set the 10th bit to 0, set all these bit to this, OR the bits of these two vectors and probably some others.

How these are actually stored in memory is completely up to the programming language, and, on top of that, it may even be completely up to a given implementation of that language.

The general consensus (not a rule) is that each bit should take up roughly 1 bit in memory (maybe, on average, slightly more, since there could be overhead related to storing these).

As one example (how Java does it), you could have an array of 64-bit numbers and store 64 bits in each position. The translation to ASCII won't make sense in this case.

Another thing you should know - even ASCII gets stored as bits in memory, so those 2 arrays are essentially the same, unless you meant something else.

Upvotes: 1

Related Questions