Texte en Binaire

Elangel -  
Gihef Messages postés 5165 Statut Contributeur -
Bonjour,

Je suis en seconde et j'ai prix l'option MPI et nous devons essayé de faire une page internet qui traduit tout ce que l'on écrit dans un champs en binaire.

Je connais bien le HTML. Je pense qu'il faudrait une table PHP mais je ne sais pas du tout comment faire.

Pouvez-vous m'aider ou me passer des liens expliquant comment faire ???

Merci
A voir également:

3 réponses

edevouge
 
Bonjour,

Je te propose une solution simple, utilisant du Javascript et du Html. Si tu ne comprend pas qqch, n'hésite pas à poster!

Bon courage!

edevouge

<html>
<head>
<title>Petit test de converssion Binaire/Hexadécimal/Décimal</title>
<script language="JavaScript">

/* Script de converssion Binaire/Hexadécimal/Décimal*/


function decCompute(form) {
 form.hex.value = hexfromdec(form.decimal.value);
 form.binary.value = binfromdec(form.decimal.value);
}

function hexCompute(form) {
form.decimal.value = decfromhex(form.hex.value);
 form.binary.value = binfromdec(form.decimal.value);
}

function binCompute(form) {
 form.decimal.value = decfrombin(form.binary.value);
 form.hex.value = hexfromdec(form.decimal.value);
}

function hexfromdec(num) {
 if (num > 65535) { return ("overflow!") }
 first = Math.round(num/4096 - .5);
 temp1 = num - first * 4096;
 second = Math.round(temp1/256 -.5);
 temp2 = temp1 - second * 256;
 third = Math.round(temp2/16 - .5);
 fourth = temp2 - third * 16;

 return (""+getletter(first)+getletter(second)+getletter(third)+getletter(fourth));
}

function getletter(num) {
 if (num < 10) {
 return num;
 }
 else
 {
 if (num == 10) { return "A" }
 if (num == 11) { return "B" }
 if (num == 12) { return "C" }
 if (num == 13) { return "D" }
 if (num == 14) { return "E" }
 if (num == 15) { return "F" }
 }
}

function binfromdec(num) {
 var bit16=0, bit15=0, bit14=0, bit13=0, bit12=0, bit11=0, bit10=0, bit9=0, bit8=0, bit7=0, bit6=0, bit5=0, bit4=0, bit3=0, bit2=0, bit1=0;
 if (num > 65535) { return ("overflow!") }
 if (num & 32768) { bit16 = 1 }
 if (num & 16384) { bit15 = 1 }
 if (num & 8192) { bit14 = 1 }
 if (num & 4096) { bit13 = 1 }
 if (num & 2048) { bit12 = 1 }
 if (num & 1024) { bit11 = 1 }
 if (num & 512) { bit10 = 1 }
 if (num & 256) { bit9 = 1 }
 if (num & 128) { bit8 = 1 }
 if (num & 64) { bit7 = 1 }
 if (num & 32) { bit6 = 1 }
 if (num & 16) { bit5 = 1 }
 if (num & 8) { bit4 = 1 }
 if (num & 4) { bit3 = 1 }
 if (num & 2) { bit2 = 1 }
 if (num & 1) { bit1 = 1 }
 return (""+bit16+bit15+bit14+bit13+bit12+bit11+bit10+bit9+bit8+bit7+bit6+bit5+bit4+bit3+bit2+bit1);
}

function decfromhex(num) {
while (num.length < 4) {
 num = "0" + num;
 }
 return (eval(getnum(num.substring(3,4))) + eval(getnum(num.substring(2,3))) * 16 +
eval(getnum(num.substring(1,2))) * 256 + eval(getnum(num.substring(0,1))) * 4096);
 }

function getnum(letter) {
 if (letter <= "9") {
 return letter;
 }
 else
 {
 if ((letter == "a") || (letter == "A")) { return 10 }
 if ((letter == "b") || (letter == "B")) { return 11 }
 if ((letter == "c") || (letter == "C")) { return 12 }
 if ((letter == "d") || (letter == "D")) { return 13 }
 if ((letter == "e") || (letter == "E")) { return 14 }
 if ((letter == "f") || (letter == "F")) { return 15 }
 return 0;
 }
}

function decfrombin(num) {
 var decimal = 0;
 while (num.length < 16) {
 num = "0" + num;
 }
 if (num.substring(15,16) == "1") { decimal++ }
 if (num.substring(14,15) == "1") { decimal = decimal + 2 }
 if (num.substring(13,14) == "1") { decimal = decimal + 4 }
 if (num.substring(12,13) == "1") { decimal = decimal + 8 }
 if (num.substring(11,12) == "1") { decimal = decimal + 16 }
 if (num.substring(10,11) == "1") { decimal = decimal + 32 }
 if (num.substring(9,10) == "1") { decimal = decimal + 64 }
 if (num.substring(8,9) == "1") { decimal = decimal + 128 }
 if (num.substring(7,8) == "1") { decimal = decimal + 256 }
 if (num.substring(6,7) == "1") { decimal = decimal + 512 }
 if (num.substring(5,6) == "1") { decimal = decimal + 1024 }
 if (num.substring(4,5) == "1") { decimal = decimal + 2048 }
 if (num.substring(3,4) == "1") { decimal = decimal + 4096 }
 if (num.substring(2,3) == "1") { decimal = decimal + 8192 }
 if (num.substring(1,2) == "1") { decimal = decimal + 16384 }
 if (num.substring(0,1) == "1") { decimal = decimal + 32768 }
 return(decimal);
}

function choisir(adresse)
{
document.location=adresse
}
</script>
</head>
<body>

<form>
<table border="0">
<tbody>
<tr>
<td rowspan="3">
</td>
<td bgcolor="#FF9900">Décimal:</td>
<td bgcolor="#FF9900">
<input type="text" onchange="decCompute(this.form)" maxlength="20" size="20" value="0" name="decimal"/>
</td>
</tr>
<tr>
<td bgcolor="#FF9900">Binaire:</td>
<td>
<input type="text" onchange="binCompute(this.form)" maxlength="20" size="20" value="0000000000000000" name="binary"/>
</td>
</tr>
<tr bgcolor="#FF9900">
<td>Hexadécimal: </td>
<td>
<input type="text" onchange="hexCompute(this.form)" maxlength="20" size="20" value="0000" name="hex"/>
</td>
</tr>
</tbody>
</table>
</form>
0
edevouge
 
D'ailleur, je pense qu'en php il existe une fonction decbin(), je crois qui convertie du décimale en binaire.
A creuser!
0
Gihef Messages postés 5165 Statut Contributeur 2 779
 
Bonjour,

Juste decbin.

--
0