J'ai un fichier csv qui stocke les valeurs longues dans ce format:Convertir 0x0000000000000001 de chaîne à longue
0x0000000000000001
0x0000000000000002
0x0000000000000020
0x0000000000040000
Je veux enregistrer les valeurs des variables longues. Je peux enregistrer les données directement tant par exemple:
long t = 0x0000000000040000;
Cela ne jette pas une exception.
Cependant, je n'arrive pas à convertir ce format de chaîne (comme je l'ai lu du fichier csv) à long.
J'ai essayé
Convert.ToInt64("0x0000000000040000");
comme suggéré dans this question
J'ai aussi essayé
long.Parse("0x0000000000040000", NumberStyles.HexNumber);
Mais cela jette aussi une exception
je peux analyser quand je me débarrasser de le 0x à l'avant. Mais le numéro est ensuite enregistré sans les zéros (par exemple 0x0000000000000001 devient 1), ce qui n'est pas ce que je veux.
Tl; dr:
Est-ce que quelqu'un sait comment analyser
string s = "0x0000000000000001";
à
long l = 0x0000000000000001;
?
double possible de [Comment analyser les valeurs hexagonales dans un uint?] (Http://stackoverflow.com/questions/98559/how-to-parse-hex-values-into-a-uint) – Grundy
utilisez 's.Subtring (2)', donc vous supprimez les deux premiers caractères '0x' – Ian
» Mais le numéro est alors sauvegardé sans les zéros (par ex. 0x0000000000000001 devient juste 1), ce qui n'est pas ce que je veux. "- Le nombre est le même. Si vous voulez le * formater différemment en l'écrivant quelque part (par exemple 'l.ToString (" x16 ")'), c'est un autre point, mais vous ne devriez pas vous soucier de la façon dont un nombre est représenté quand il n'y a pas de différence. tout. – Joey