Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > ERP > SAP
SAP Forum d'entraide sur SAP et sur la programmation avec le langage ABAP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/03/2005, 19h35   #1
Futur Membre du Club
 
Inscription : octobre 2002
Messages : 25
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2002
Messages : 25
Points : 15
Points : 15
Par défaut [ABAP] Convertir nombre decimal en binaire

Bonjour,

Je souhaiterai effectue la comparaison suivante en ABAP mais je ne connais pas les fonctions a utiliser.

Code :
1
2
3
4
5
6
if ( toBinary(i)&"10000" == "10000" ) {
  var1='*';
} else {
  var1=XXXX;
}
En clair, la representation binaire du nombre decimal "i" multiplie par le nombre binaire "10000" doit me rendre un resultat que je souhaite comparer a un autre nombre binaire. Deux solutions sont a prevoir, soit le retour de la multiplication est "00000", soit "10000"...

Merci de vos reponse.
danael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2005, 09h14   #2
Membre expérimenté

 
SAP for Banking
Inscription : juin 2002
Messages : 539
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : SAP for Banking
Secteur : Conseil

Informations forums :
Inscription : juin 2002
Messages : 539
Points : 566
Points : 566
Bonjour,
Ce que tu tentes de faire consiste en une simple vérification de la parité d'un décimal.

Code :
1
2
3
4
5
6
7
8
9
DATA: j TYPE i.

j = i MOD 2.
IF  j = 0 " Pair.
    "Alors.
ELSE.
   " Sinon.
ENDIF.
__________________
TRY.
N/A
CATCH cx_root.
ludovic.fernandez est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2005, 10h08   #3
Futur Membre du Club
 
Inscription : octobre 2002
Messages : 25
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2002
Messages : 25
Points : 15
Points : 15
Merci de la reponse. J'avais pense a la solution mais il est vrai que mon message precedent n'etait pas tres precis: mes excuses...

Voici donc le code que je souhaite appliquer:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
  if ( i & 16 = 16 )
    var1='*'
  else
    var1=xxx
  endif

  if ( i & 8 = 8 )
    var2='*'
  else
    var2=p0001-btrtl
  endif

  if ( i & 4 = 4 )
    var3='*'
  else
    var3=yyy
  endif

  if ( i & 2 = 2 )
    var4='*'
  else
    var4=zzz
  endif

  if ( i & 1 = 1 )
    var5='*'
  else
    var5=www
  endif
Sachant que cette methode est normalement valide en C, je ne sais pas si cela peu etre applicable en ABAP.

Pourrais tu me confirmer cela?
Y'a t il une fonction qui convertisse le decimal et binaire?

Merci de ton aide.
danael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2005, 12h17   #4
Membre expérimenté

 
SAP for Banking
Inscription : juin 2002
Messages : 539
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : SAP for Banking
Secteur : Conseil

Informations forums :
Inscription : juin 2002
Messages : 539
Points : 566
Points : 566
Je ne connais pas les binaires en ABAP, les plus petits types à ma connaissance sont les octets (b) et j'imagine que tu parles d'entiers (i codés sur 4 octets).

La question devient donc : comment caster 4 octets sur un seul ? ais-je bien compris ?

Voir aussi dans la doc ABAP (Compute BIT-AND) mais je ne vois pas de fonctions dédiées. en fait, en utilisant MOVE, les règles de conversions par défaut vont êtres appliquées.

Citation:
If the content is assigned to the same data type, it is not converted when it is transferred. If it is not assigned to the same data type, the value of the integer is converted into the internal format i, b, s. If the value range of data type b or s is exceeded, a handleable exception occurs.
Ludo
__________________
TRY.
N/A
CATCH cx_root.
ludovic.fernandez est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h31.


 
 
 
 
Partenaires

Hébergement Web