2011-10-03 2 views
2

Comment remplacer le LSB d'un octet par un LSB d'un autre octet dans C#.Comment remplacer le LSB d'un octet par un LSB d'un autre octet

Quelque chose comme ça

byte1 - 0 1 1 1 1 1 1 1

octet2 - 0 0 1 1 1 0 0 0

Maintenant, je veux lsb byte1-à-dire "1" être remplacé par lsb de byte2 soit "0". donc mon dernier octet devrait être comme ceci:

Byte3 - 0 1 1 1 1 1 1 0

+0

Veuillez ne pas préfixer vos titres avec "C#". C'est ce que nous utilisons sur [donc]. –

+0

en utilisant l'assembleur (IL) ou qu'avez-vous mentionné? –

Répondre

6

On dirait que vous voulez quelque chose comme:

byte x = ...; 
byte y = ...; 

// Only bits 1-7 of x, and only bit 0 of y (counting bit 0 = LSB) 
byte z = (byte) ((x & 0xfe) | (y & 1)); 

Le casting est nécessaire parce que tous les les opérateurs ne sont définis que pour int et plus, donc tout est promu à int.

Questions connexes