donc je crée un programme qui lit un tableau d'octets et renvoie la valeurComment retourner un octet d'un tableau d'octets avec la valeur hexadécimale complète?
byte[] buffer1 = File.ReadAllBytes(path).Skip(startPos).Take(lengthToExtract).ToArray();
byte[] reversed = buffer1.Reverse().ToArray();
string buffer2 = "";
foreach (var i in reversed)
{
buffer2 = buffer2 + i.ToString("X") + " ";
}
MessageBox.Show(buffer2);
int size = int.Parse(buffer2.Replace(" ", string.Empty), System.Globalization.NumberStyles.HexNumber);
return size;
Mais quand je reçois le message pour la valeur de la mémoire tampon de chaîne hexadécimale des valeurs qu'il faut sur l'hexagone « sans importance » numéro dehors qui bousille ma valeur. Par exemple, si l'octet lu est 0x00, il renverra la valeur à 0, et je lirai les octets résultants à l'envers donc: 0x04080 (0 4 0 80) est différent de 0x0040080 (00 04 00 80). J'ai besoin d'aide, ça gâchera tout mon programme.
Vos lignes avec des appels à 'PadLeft' pourrait être simplifié à' sdata.Append (données [s] .ToString (« X2 »)); ' ce qui empêchera la création d'un tas de chaînes supplémentaires. +1 cependant pour utiliser un StringBuilder pour empêcher le garbage collector de se mettre en colère contre vous. Pourrait aller un peu plus loin et en faire 'StringBuilder sdata = new StringBuilder (data.Length * 2);' –
@LeeHiles Sure. Ce seront des améliorations –