Texte en Binaire
Elangel
-
Gihef Messages postés 5165 Statut Contributeur -
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
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
Configuration: Windows XP Firefox 2.0.0.8 Internet Explorer 7 Dreamweaver 8
3 réponses
-
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> -
D'ailleur, je pense qu'en php il existe une fonction decbin(), je crois qui convertie du décimale en binaire.
A creuser! -