docs error? - rightmost vs leftmost

In the extended language reference for word, highByte and lowByte, the low-order byte is referred to as “leftmost” and the high-order byte as “rightmost”. This is backwards, to my way of thinking.

int myval = 0xABCD;
Serial.println(lowByte(myval), HEX);
prints “CD” and

Serial.println(highByte(myval), HEX);
prints “AB”

I searched the site for highByte and lowByte and did not see any other instances of this usage.

As I tell my boss, “If I were perfect, you couldn’t afford me!”

Whoops, fixed.

Let me know if I missed any places.

Not exactly the same subject, but the last time I checked highByte and lowByte actually returned int, not byte values.

I have only had a problem with this passing values to a function that expects either (int, int) or (byte, byte) as parameters. If you pass a real byte and a lowByte(x), the compiler sees (byte, int) and can't resolve which overload you want.

My solution was to define macros:

#define loByte (byte)lowByte
#define hiByte (byte)highByte

to cast away the problem.