Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


Convertir des nombres entre différentes bases numériques
#1
tcl
# décimal -> binaire
proc dec2bin value {
	binary scan [binary format I $value] B32 output
	return $output
}
 
# décimal -> hexadécimal
proc dec2hex value {
	return [format %x $value]
}
 
# décimal -> octal
proc dec2oct value {
	return [format %o $value]
}
 
# binaire -> décimal
proc bin2dec value {
	return [hex2dec [bin2hex $value]]
}
 
# binaire -> hexadécimal
proc bin2hex value {
	array set bin2hex_array {
		0000 0 0001 1 0010 2 0011 3 0100 4
		0101 5 0110 6 0111 7 1000 8 1001 9
		1010 a 1011 b 1100 c 1101 d 1110 e 1111 f
	}
	set diff [expr {4-[string length $value]%4}]
	if { $diff != 4 } {
		set value [format %0${diff}d$value 0]
	}
	regsub -all .... $value {$bin2hex_array(&)} hex_value
	return [subst $hex_value]
}
 
# binaire -> octal
proc bin2oct value {
	set dec_value [hex2dec [bin2hex $value]]
	return [format %o $dec_value]
}
 
# hexadécimal -> décimal
proc hex2dec value {
	return [expr 0x$value]
}
 
# hexadécimal -> binaire
proc hex2bin value {
	array set hex2bin_array {
		0 0000 1 0001 2 0010 3 0011 4 0100
		5 0101 6 0110 7 0111 8 1000 9 1001
		a 1010 b 1011 c 1100 d 1101 e 1110 f 1111
		A 1010 B 1011 C 1100 D 1101 E 1110 F 1111
	}
	regsub {^0[xX]} $value {} value
	regsub -all . $value {$hex2bin_array(&)} bin_value
	return [subst $bin_value]
}
 
# hexadécimal -> octal
proc hex2oct value {
	return [dec2oct [hex2dec $value]]
}
 
# octal -> binaire
proc oct2bin value {
	return [dec2bin [oct2dec $value]]
}
 
# octal -> décimal
proc oct2dec value {
	set value 0$value
	return [format %i $value]
}
 
# octal -> hexadécimal
proc oct2hex value {
	return [dec2hex [oct2dec $value]]
}


Source : http://www.boulets.oqp.me/tcl/routines/t...-0002.html
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
  Répondre


Sujets apparemment similaires...
Sujet Auteur Réponses Affichages Dernier message
  Différence entre deux listes CrazyCat 2 3,032 21/10/2020, 20:26
Dernier message: BdS
  Convertir des entités HTML MenzAgitat 1 4,209 11/11/2013, 11:19
Dernier message: CrazyCat
  Convertir des codes de style mIRC en HTML MenzAgitat 0 2,935 11/10/2013, 00:31
Dernier message: MenzAgitat
  Convertir un nombre d'octets en ko/Mo/Go/To/Po/Eo/Zo ou kio/Mio/Gio/Tio/Pio/Eio/Zio MenzAgitat 3 5,228 07/10/2013, 23:10
Dernier message: CrazyCat
  Générateur de nombres pseudo-aléatoires de George Marsaglia MenzAgitat 0 3,236 07/10/2013, 22:45
Dernier message: MenzAgitat

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)