Beim I2C gibt es nur gerade Adressen. Das letzte Bit (also gerade oder ungerade) ist das R/W-Bit. Die übrigen 7 Bits werden ohne Shiften angegeben; d.h. Adresse 128 gibt es: 1000 000x. Es sind alle Adressen im Bereich 0, 2, 4, 6, ... 250, 252, 254 möglich (wobei 0 für General Call freigehalten werden sollte)

Also wenn du 0000 101x adressieren willst, dann ist das die Adresse 10 für schreiben, 11 für lesen. (0000 1010 binär = 10 Dezimal).
D.h. was die I2C-Hardware ausspuckt, stimmt schon. Du gibst Adresse 5 an (0000 0101) an, das Lesen-Bit wird gesetzt (ist aber schon 1, d.h. es bleibt bei 0000 0101) und die I2C-Hardware schickt an die eigentliche Adresse 4 einen Lese-Auftrag (+1).

Wenn im Datenblatt eines Geräts dann wirklich 0000 101 als Adresse angegeben ist, dann muss rechts noch das fehlende 8. Bit (R/W) angehängt werden.

Bei den 24C-EEPROMS sind die Adress-Bits z.B. 1010 A2 A1 A0 x.
D.h. die möglichen Adressen sind 0xA0, 0xA2, 0xA4, ... 0xAE (160, 162, 164,... 174).

Nachtrag: am CAN-Bus ist die Adressierung wieder etwas einfacher *g*. Da sinds 11 bzw. 29 Bit und nur diese für die Adresse. Also Adresse 5 ist da dann wirklich 000 0000 0101.