Binaire <=> decimal

Contenu du snippet

Salut,
Voici un petit snippet (pour ceux que ça interresse) qui converti soit des nombres decimaux en nombres binaires, ou l'inverse.
Oui,c'est vrai ça n'a aucun interet (quoique ;)

Source / Exemple :


alias dec2bin {
  if $1 == $null       echo -a Aucun nombre entré !
  elseif $1 = 0        echo -a 0
  else {
    var %dec $1 , %bin 
    :deb
    if %dec != 1 {
      if . isin $calc(%dec / 2) {
        %dec = $calc($calc(%dec - 1) / 2)
        %bin = 1 $+ %bin
        goto deb
      }
      else {
        %dec = $calc(%dec / 2)
        %bin = 0 $+ %bin 
        goto deb
      }
    }
    else { 
      echo -a 1 $+ %bin
    }
  }
}

alias bin2dec {
  if $1 == $null       echo -a Aucun nombre entré !
  elseif $1 = 0        echo -a 0
  elseif $1 = 1        echo -a 1
  else {
    var %tmp 0, %dec, %lbin $calc($len($1) - 1)
    while (%tmp <= %lbin) {
      if ($mid($1,$calc(%tmp + 1),1) == 1) {
        %dec = $calc(%dec + $puissance(2,$calc(%lbin - %tmp)))
        inc %tmp
      }
      else { inc %tmp }
    }
    echo -a %dec
  }
}

alias -l puissance {
  var %nbre $1, %pui $2
  if $2 == 0 return 1
  else {
    while (%pui > 1) {
      %nbre = $calc(%nbre * $1)
      dec %pui
    }
    return %nbre
  }
}

Conclusion :


syntaxe:

/bin2dec *nombre decimal*
/dec2bin *nombre binaire*

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.