Ryan
Ryan

Reputation: 3982

Get an array of bits that represent an int in c#

Is there a way to show the representation of an int in bits in c#?

i.e.

1  = 00001
20 = 10100

etc.

I have tried using BitConverter with no luck. This should be simple, but I can't find a solution!

Upvotes: 1

Views: 578

Answers (3)

Rohan West
Rohan West

Reputation: 9308

You could also look at using a BitArray.

var array = new BitArray(BitConverter.GetBytes(1));

Upvotes: 1

p.s.w.g
p.s.w.g

Reputation: 149068

Here's a one-liner using linq:

var myint = 20;
var bytes = Enumerable.Range(0, 32).Select(b => (myint >> b) & 1);
// { 0, 0, 1, 0, 1, 0 ... }

Of course this is in reverse order, to swap it around just use:

var myint = 20;
var bytes = Enumerable.Range(0, 32).Select(b => (myint >> (31 - b)) & 1);
// { ..., 0, 1, 0, 1, 0, 0 }

Upvotes: 2

Robert Harvey
Robert Harvey

Reputation: 180908

Convert.ToString(value, base)

Converts the value of a 32-bit signed integer to its equivalent string representation in a specified base. Specify 2 for the base.

Upvotes: 7

Related Questions