_host_to_network_long_ _host_to_network_short etc, etc. On bigendian machines they are no-operations, so developing network software on a little endian machine means you find out immediately if forgot one.
Bit addressing is just the generalisation of byte addressing. In a 64 bit architecture, you can load a single byte from any address, but the memory is accessed via a 64 bit bus, so you need hardware to shuffle any set of 8 bits on the bus to the low 8 bits, since the 8 bits you want are the low 8 bits only for byte addresses divisible by 8. Bit addressing just expands this to a complete barrel shifter, and most CPUs have one of these in the ALU anyway (ARM has had one since the very first implementation.) Byte addressed machines need addressing modes with fast multiply-by-8 so make accesses to long words arrays fast (the address of the nth word of an array of long words is <array base> + (n * 8), since a long is 8 bytes long.) Moving to bit addressing is just the same, by multiply by 64 instead of multiply by 8.
Word addressing means that you can't easily create a pointer to anything smaller than a whole word, which is a disaster for C, which uses pointers to characters/bytes EVERYWHERE.
MP.