# I2C actually sends inverted data over the line?

It seems to me that I2C is actually transfering inverted bits which sounds a bit odd so I am seeking for a clarification.

I2C diagram from here.

Let's say we are writing to slave. A zero (0) comes to SDA out, which means nMOS is in HiZ and the receiver gets a 1 due to Pull-up. And if a 1 comes to SDA out then nMOS will connect with ground meaning receiver gets a 0.

So it seems to me as if I2C is actually sending inverted data across the SDL. This does not really make any sense to me so.. is there an inverter on the receiver's end not shown in the diagram that makes the data correct? Or did I misunderstood how it works in the first place?

-
If you want to understand I2C, then read the official I2C spec. At least, skim through it. The spec is available free of charge. –  Nick Alexeev Jun 17 at 17:42