Pages: 1 [2]   Go Down
Author Topic: integer save into single bytes  (Read 2276 times)
0 Members and 1 Guest are viewing this topic.
Switzerland
Offline Offline
Sr. Member
****
Karma: 0
Posts: 269
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Why do your buffer subscripts start at 1?

Since in the first ([0]) is the adress where the message came from...

is 1 << 0 not the same as pow(256,0).

Or how can I do it differently?
« Last Edit: March 23, 2012, 11:01:36 am by GekoCH » Logged

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 291
Posts: 25847
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

1 << 0 is exactly the same value as 2560
The problem lies with the progression
0, 8, 16 ... ?
Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Switzerland
Offline Offline
Sr. Member
****
Karma: 0
Posts: 269
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

so maybe 24 hmmmm smiley

But still no success or is it still wrong (24)?

Logged

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 291
Posts: 25847
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm posting this from my phone.
I can't see your results, and I'm miles from my Arduinos.
Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Offline Offline
Jr. Member
**
Karma: 4
Posts: 68
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
if you are trying to convert from byte array to long integer, simply use the union in the opposite way:

Code:
   Number Out;

   Out.barray[0] = b0;
   Out.barray[1] = b1;
   Out.barray[2] = b2;
   Out.barray[3] = b3;

   unsigned long val = Out.num
Logged

Switzerland
Offline Offline
Sr. Member
****
Karma: 0
Posts: 269
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
if you are trying to convert from byte array to long integer, simply use the union in the opposite way:

Code:
   Number Out;

   Out.barray[0] = b0;
   Out.barray[1] = b1;
   Out.barray[2] = b2;
   Out.barray[3] = b3;

   unsigned long val = Out.num

Wow thx the union thing worked just great!

Finally I do need to send float numbers separated in a 4 byte array with the IEEE-754 Standard.
Converting form the bytes to float was easy but the other way round seems harder...


Logged

Seattle, WA USA
Offline Offline
Brattain Member
*****
Karma: 601
Posts: 48543
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Finally I do need to send float numbers separated in a 4 byte array with the IEEE-754 Standard.
Converting form the bytes to float was easy but the other way round seems harder...
Why? It's the same union, with a float added.
Logged

Switzerland
Offline Offline
Sr. Member
****
Karma: 0
Posts: 269
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

wow you were right hmm this union thing is quite strong have to dig deeper what else it can deliver....

Thx
Andy
Logged

SF Bay Area (USA)
Offline Offline
Tesla Member
***
Karma: 124
Posts: 6652
Strongly opinionated, but not official!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So I tryed this but it doesn't work...
Code:
long number = 115730;
data[0] = (byte)(number >> 24);
data[1] = (byte)(number >> 16);
data[2] = (byte)(number >> 8);
data[3] = (byte)(number);
I don't see anything wrong with the original construction (aside from the ':' vs ';', which I hope is a transcription error.)
In what was does it "not work"?
Logged

Switzerland
Offline Offline
Sr. Member
****
Karma: 0
Posts: 269
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

the value returned was wrong compared to what was expected there fore I wrote it doesn't work...
Logged

Seattle, WA USA
Offline Offline
Brattain Member
*****
Karma: 601
Posts: 48543
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
the value returned was wrong compared to what was expected there fore I wrote it doesn't work...
Could be that your expectations were wrong. No input, no output, no way for us to know whether the code is wrong or your expectations are wrong.
Logged

Pages: 1 [2]   Go Up
Jump to: