bit storing as byte

Byte_Addr[0]={bit1,bit2,bit3,bit4,bit5,bit6,bit7,bit8}
Next Byte
Byte_Addr[1]={bit9,bit10,bit11,bit12,bit13,bit14,bit15,bit16}
and so on

Yes, look, each byte IS 8 bits but from high order to low: (like 256 is 2x100+5x10+6x1, high to low left to right).

byte value = bit7x2^7, bit6x2^6, bit5x2^5, bit4x2^4, bit3x2^3, bit2x2^2, bit1x2^1, bit0x20.... 20 = 1 if bit is set.

You can manipulate bits in a byte or other integer variable using the Arduino bit commands to set or clear any bit by number.
You can shift bits in an integer places to the right (divides by powers of 2) or left (multiplies by 2's) and write bits into the cleared positions.

But you never have to break down what you send to all bits. 24-bit addresses are best calculated in 32-bit unsigned long and then, love this part, you take the address of the unsigned long and the first 3 bytes ARE the 24-bit address in low to high byte order, that is how unsigned long is stored on Arduino.

There is no need to figure out the individual bits for that 24 bits.

This Arduino Playground link can get you versed in bit math. Then you may see things differently.

https://playground.arduino.cc/Code/BitMath