hello my question is that i want 16 Byte hex address by combining to 8 byte hex values as follows:
unsigned long addr; unsigned char buf[3]; buf[0]=0x81; // msb buf[1]=0x23; // lsb ... printf("%lx", &addr); //output: addr = 0x8123
i want to retrieve from this array one hex address into 'addr' variable. my output is: addr = 0x8123.
thanks in advance
sorry, i meant 2 Byte. when i applied the previous answer i got something else, all i want is to combine the 2 byte's into 1 address. 0x81 0x23 -> 0x8123.
unsigned char buf[4]; unsigned long addr; union split {unsigned int word; struct {unsigned char hi;unsigned char lo;} bytes;}; union split newcount; buf[0] = 0x81; buf[1] = 0x23; newcount.bytes.hi = buf[0]; newcount.bytes.lo = buf[1]; addr = newcount.word; // output: addr = 0x8123
.
all i want is to combine the 2 byte's into 1 address. 0x81 0x23 -> 0x8123.
i thing your need is combine two 8bits into 16bit word am i right? ok do like this
short total; char val1; char val2; total=val2; total= total<<7; total|=val1;
-KTV
nice. but it's working this way:
short total; buf[0] = 0x81; buf[1] = 0x23; total = buf[0]; total = total << 8; total |= buf[1]; // total = 0x8123
no need for struct or union (complicated...) thanks.
Why not just simplify it to:
short total; buf[0] = 0x81; buf[1] = 0x23; total = buf[0]<<8 | Buf[1]; // total = 0x8123
John, you beat me to it!
Hey! You are the forth "malund" today! One big happy family? Brace yourself, rahib kalib!
Anyone know what the collective noun for a group of Malunds is?
Maybe a project, or a billow or an asylum.
How about using the first letter of each family member's name ? if you then add an 'A', you get JEANS
:-)
Malundii ?
Or, given his favourite citation, perhaps it should be a "Testament" or even a "Canon"...?!