je besoin d'une bonne façon d'extraire les valeurs de certains bits dans un court non signé:Extrait des valeurs non signées de certains bits en C# ushort
La définition des 4 alarmes à l'intérieur du ushort:
Name......Range.......Bits
Alarm4....0-15....13/16-16/16
Alarm3....0-15....9/16-12/16
Alarm2....0-15....5/16-8/16
Alarm1....0-15....1/16-4/16
Le valeur du ushort: 4383 ou (1.000.100.011.111 en binaire)
donc ce que je veux réaliser est:
1001100110011001
Alarm1.....Alarm2.....Alarm3......Alarm4
1001.......1001.......1001........1001
Gets translated into:
Alarm1....Alarm2....Alarm3....Alarm4
9............9............9............9
En utilisant le code pseudo:
getValueFunc(ushort bits, int offset);
ushort u = 4383;
UInt16 Alarm1Value = getValueFunc(u, 1);
UInt16 Alarm2Value = getValueFunc(u, 5);
UInt16 Alarm3Value = getValueFunc(u, 9);
UInt16 Alarm4Value = getValueFunc(u, 13);
Cordialement, Johan
Merci beaucoup! Cela fonctionne parfaitement pour un cas où tous les 16 bits sont peuplés. Testé, et cela fonctionne, j'ai été en mesure d'extraire toutes les valeurs. –