user5552734
user5552734

Reputation:

How can I treat a short integer as an array of elements in C?

So I have an integer stored as a short. Let's say:

short i = 3000;

Which in binary is:

0011 0000 0000 0000

I was told I can treat it as an array of two elements where each element is a byte basically, so:

i[0] = 0011 0000
i[1] = 0000 0000

How can I accomplish this?

Upvotes: 2

Views: 75

Answers (1)

Giorgi Moniava
Giorgi Moniava

Reputation: 28685

You could do it like this (assuming short is 2 bytes)

short i = 3000; // 3000 in Binary is: 00001011 10111000
unsigned char x[2] = {0};
memcpy(x, &i, 2);

Now x[0] will be 10111000 and x[1] 00001011 if this code runs on little endian machine. And reverse will hold true in case of big endian machine.

Btw. Your binary representation of 3000 looks wrong

Upvotes: 4

Related Questions