IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Framework .NET Discussion :

Conversion d'un Integer négatif en UInteger


Sujet :

Framework .NET

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 41
    Par défaut Conversion d'un Integer négatif en UInteger
    Bonjour à tous !

    J'ai un gros problème de convertion.

    Je veux convertir un Int qui vaut -1579887150 en UInteger.

    Je sais en ayant bidouillé un peu que la valeur de mon UInteger doit être égale à 2715080146.

    Comment faire celà en .Net sans écrire la vilaine chose que voici :
    Dim iMonEntier As Integer = -1579887150
    Dim uiIntMax As UInteger = Integer.MaxValue
    Dim uiMonEntierNonSigne As UInteger = CUInt(uiIntMax + (uiIntMax - Math.Abs(iMonEntier)) + 2)
    Pourquoi j'ai fait comme ça ?
    Et bien je me suis dis, que puisqu'un UInt ne connaissait pas les négatifs ceux ci devait être codé au dessus de la valeur maximum d'un entier (Integer.MaxValue). J'ai rajouté 2 pour que le résultat soit exact. Ma fonction semble fonctionnée, mais je ne crains qu'à un moment ou à un autre elle ne me retourne un résultat complètement erroné


    Bref, comment on fait déjà pour faire une conversion comme il faut avec le ptit décalage de bit qui va bien ?

    Merci de vos éventuels réponses

    NB : C'est pour du CompactFramework 2 mais je poste ici car je pense que le problème n'est pas lié à celui-ci.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 41
    Par défaut
    Eureka ! J'ai trouvé !!!

    Voici le ptit bout de code qui va bien :

    Dim iMonEntier As Integer = -1579887150
    Dim sMonHexaIntermediaire As String = Hex(iMonEntier)
    Dim uiMonEntierNonSigne As UInteger = Convert.ToUInt32(sMonHexaIntermediaire, 16)
    J'ai fait un saut sur Wikipedia et j'ai trouvé ça : http://fr.wikipedia.org/wiki/Compl%C...nt_%C3%A0_deux

    Du coup ça m'a donné l'idée de convertir mon entier en Hexa avant de le reconvertir en entier non signé. Il y a peut être une solution plus appropriée, mais celle-ci me semble très bien.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de conversion 'Year to Integer'
    Par crackspider7676 dans le forum SQL
    Réponses: 3
    Dernier message: 15/01/2008, 07h32
  2. conversion d'un Integer en String
    Par fredonouille dans le forum Langage
    Réponses: 2
    Dernier message: 09/06/2007, 23h58
  3. conversion text vers integer
    Par jawad.t dans le forum Connexion aux bases de données
    Réponses: 3
    Dernier message: 10/06/2005, 20h35
  4. Réponses: 3
    Dernier message: 12/05/2005, 12h10
  5. Conversions de String à Integer
    Par Rank dans le forum Langage
    Réponses: 5
    Dernier message: 06/08/2003, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo