Bits and Bytes

This library is for extracting the byte of a variable and accessing a bit of a number etc.

lowByte

Description

Extracts the low-order (rightmost) byte of a variable.

Syntax

lowByte(x)

Parameters

x: A value of any type

Returns

Byte (unsigned char)

highByte

Description

Extracts the high-order (leftmost) byte of a word (or the second lowest byte of a larger data type).

Syntax

highByte(x)

Parameters

x: A value of any type

Returns

Byte (unsigned char)

bitRead

Description

Reads a bit of a number.

Syntax

bitRead(x, n)

Parameters

x: The number from which to read
n: Which bit to read, starting at 0 for the least-significant (rightmost) bit

Returns

The value of the bit (0 or 1).

bitWrite

Description

Writes a bit of a numeric variable.

Syntax

bitWrite(x, n, b)

Parameters

x: The numeric variable to which to write
n: Which bit of the number to write, starting at 0 for the least-significant (rightmost) bit
b: The value to write to the bit (0 or 1)

Returns

None

bitSet

Description

Sets (writes a 1 to) a bit of a numeric variable.

Syntax

bitSet(x, n)

Parameters

x: The numeric variable whose bit to set
n: Which bit to set, starting at 0 for the least-significant (rightmost) bit

Returns

None

bitClear

Description

Clears (writes a 0 to) a bit of a numeric variable.

Syntax

bitClear(x, n)

Parameters

x: The numeric variable whose bit to clear
n: Which bit to clear, starting at 0 for the least-significant (rightmost) bit

Returns

None

bit

Description

Computes the value of the specified bit (bit 0 is 1, bit 1 is 2, bit 2 is 4, etc.).

Syntax

bit(n)

Parameters

n: The bit whose value to compute

Returns

The value of the bit


Example


        #include <Arduino.h>
        void setup(){
          Serial.begin(9600);
           
          uint16_t original_data = 0b1111000010100101;
           
          Serial.println("BIN");
          Serial.print("original:\t");
          Serial.println(original_data, BIN);
          Serial.print("lowByte:\t");
          Serial.println(lowByte(original_data), BIN);
          Serial.print("highByte:\t");
          Serial.println(highByte(original_data), BIN);
           
          Serial.println("HEX");
          Serial.print("original:\t");
          Serial.println(original_data, HEX);
          Serial.print("lowByte:\t");
          Serial.println(lowByte(original_data), HEX);
          Serial.print("highByte:\t");
          Serial.println(highByte(original_data), HEX);
         
        }
         
        void loop(){
        }