La plupart du temps, probablement, mais ne pariez pas la ferme dessus, car si vous vous trompez, vous perdrez gros.
Si vous avez vraiment, vraiment besoin d'informations binaires identiques, vous devrez créer des champs de bits avec des masques de bits - par exemple, vous utilisez un court non signé (16 bits) pour Message, puis faites des choses comme versionMask = 0xE000 pour représenter les trois bits les plus hauts.
Il y a un problème similaire avec l'alignement dans les structures. Par exemple, les processeurs Sparc, PowerPC et 680x0 sont tous big-endian, et la valeur par défaut commune pour les compilateurs Sparc et PowerPC est d'aligner les membres de structure sur des limites de 4 octets. Cependant, un compilateur que j'ai utilisé pour 680x0 uniquement aligné sur des limites de 2 octets - et il n'y avait aucune option pour changer l'alignement!
Ainsi, pour certaines structures, les tailles sur Sparc et PowerPC sont identiques, mais plus petites sur 680x0, et certains des membres sont dans des décalages mémoire différents dans la structure.
C'était un problème avec un projet sur lequel j'ai travaillé, car un processus serveur s'exécutant sur Sparc interrogeait un client et découvrait qu'il était big-endian, et supposait qu'il pouvait simplement éjecter des structures binaires sur le réseau et que le client pouvait faire face. Et cela a bien fonctionné sur les clients PowerPC et a planté énormément sur les clients 680x0. Je n'ai pas écrit le code et il a fallu un certain temps pour trouver le problème. Mais c'était facile à réparer une fois que je l'ai fait.