login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > JS > Rekenmachines > Van getallenstelsels omrekenen

Van getallenstelsels omrekenen

Auteur: yetti4 - 04 april 2008 - 17:17 - Gekeurd door: Stijn - Hits: 5548 - Aantal punten: 2.75 (2 stemmen)





Iedereen weet dat je met php heel makkelijk van binaire naar decimale, octave en hexidecimale stelsel kan en andersom. Ik heb uigezocht hoe het process nou precies werkt en het met javascript gemaakt. Een leuke toevoeging in mijn script is dat je kan naar een 5-stelsel of 7-stelsel. Dat kan je zelf bepalen.

Er wordt gecontroleerd voor de juiste invoer in alle vakken.

Code:
  1. function check_2(evt)
  2. {
  3. var charCode = (evt.which) ? evt.which : evt.keyCode;
  4. if (charCode > 32 && charCode < 48)
  5. return false;
  6. if (charCode > 49)
  7. return false;
  8. return true;
  9. }
  10.  
  11. function check_8(evt)
  12. {
  13. var charCode = (evt.which) ? evt.which : evt.keyCode;
  14. if (charCode > 32 && charCode < 48)
  15. return false;
  16. if (charCode > 55)
  17. return false;
  18. return true;
  19. }
  20.  
  21. function check_10(evt)
  22. {
  23. var charCode = (evt.which) ? evt.which : evt.keyCode;
  24. if (charCode > 32 && charCode < 48)
  25. return false;
  26. if (charCode > 57)
  27. return false;
  28. return true;
  29. }
  30.  
  31. function check_16(evt)
  32. {
  33. var charCode = (evt.which) ? evt.which : evt.keyCode;
  34. if (charCode > 32 && charCode < 48)
  35. return false;
  36. if (charCode > 57 && charCode < 65)
  37. return false;
  38. if (charCode > 70 && charCode < 97)
  39. return false;
  40. if (charCode > 102)
  41. return false;
  42. return true;
  43. }
  44.  
  45. function check_x(evt)
  46. {
  47. var charCode = (evt.which) ? evt.which : evt.keyCode;
  48. if (charCode > 32 && charCode < 48)
  49. return false;
  50. if (charCode > 57 && charCode < 65)
  51. return false;
  52. if (charCode > 70 && charCode < 97)
  53. return false;
  54. if (charCode > 111)
  55. return false;
  56. return true;
  57. }
  58.  
  59. function getallen()
  60. {
  61. var bin = document.formulier.bin.value;
  62. var oct = document.formulier.oct.value;
  63. var dec = document.formulier.dec.value;
  64. var hex = document.formulier.hex.value;
  65. var ei = document.formulier.ei.value;
  66. var eigen = document.formulier.eigen.value;
  67.  
  68. if (bin!="") {
  69. // BIN_DEC
  70. var grootte = bin.length;
  71. var bin_dec = new Array();
  72. for (i=0; i<grootte; i++) {
  73. bin_dec[i] = bin.charAt(i); }
  74. var bin_dec = bin_dec.reverse();
  75. for (i=0; i<grootte; i++) {
  76. var dec = Number(dec + bin_dec[i]*Math.pow(2,i)); }
  77. document.formulier.dec.value=(dec);
  78. }
  79.  
  80. if (oct!="") {
  81. // OCT_DEC
  82. var grootte = oct.length;
  83. var oct_dec = new Array();
  84. for (i=0; i<grootte; i++) {
  85. oct_dec[i] = oct.charAt(i); }
  86. var oct_dec = oct_dec.reverse();
  87. for (i=0; i<grootte; i++) {
  88. var dec = Number(dec + oct_dec[i]*Math.pow(8,i)); }
  89. document.formulier.dec.value=(dec);
  90. }
  91.  
  92. if (hex!="") {
  93. // HEX_DEC
  94. var grootte = hex.length;
  95. var cijfers = new Array();
  96. for (i=0; i<grootte; i++) {
  97. cijfers[i] = hex.charAt(i);
  98. if (cijfers[i]=="A" || cijfers[i]=="a") {
  99. cijfers[i]=10; }
  100. else if (cijfers[i]=="B" || cijfers[i]=="b") {
  101. cijfers[i]=11; }
  102. else if (cijfers[i]=="C" || cijfers[i]=="c") {
  103. cijfers[i]=12; }
  104. else if (cijfers[i]=="D" || cijfers[i]=="d") {
  105. cijfers[i]=13; }
  106. else if (cijfers[i]=="E" || cijfers[i]=="e") {
  107. cijfers[i]=14; }
  108. else if (cijfers[i]=="F" || cijfers[i]=="f") {
  109. cijfers[i]=15; }
  110. }
  111. var cijfers = cijfers.reverse();
  112. var dec = 0;
  113. for (i=0; i<grootte; i++)
  114. {
  115. var temp = (cijfers[i]*Math.pow(16,i));
  116. var dec = Number(dec + temp);
  117. }
  118. document.formulier.dec.value=(dec);
  119. }
  120.  
  121. if (ei!="" && eigen!="") {
  122. // X_DEC
  123. var grootte = eigen.length;
  124. var cijfers = new Array();
  125.  
  126. for (i=0; i<grootte; i++)
  127. {
  128. cijfers[i] = eigen.charAt(i);
  129. if (cijfers[i]=="A" || cijfers[i]=="a") {
  130. cijfers[i]=10; }
  131. else if (cijfers[i]=="B" || cijfers[i]=="b") {
  132. cijfers[i]=11; }
  133. else if (cijfers[i]=="C" || cijfers[i]=="c") {
  134. cijfers[i]=12; }
  135. else if (cijfers[i]=="D" || cijfers[i]=="d") {
  136. cijfers[i]=13; }
  137. else if (cijfers[i]=="E" || cijfers[i]=="e") {
  138. cijfers[i]=14; }
  139. else if (cijfers[i]=="F" || cijfers[i]=="f") {
  140. cijfers[i]=15; }
  141. else if (cijfers[i]=="G" || cijfers[i]=="g") {
  142. cijfers[i]=16; }
  143. else if (cijfers[i]=="H" || cijfers[i]=="h") {
  144. cijfers[i]=17; }
  145. else if (cijfers[i]=="I" || cijfers[i]=="i") {
  146. cijfers[i]=18; }
  147. else if (cijfers[i]=="J" || cijfers[i]=="j") {
  148. cijfers[i]=19; }
  149. else if (cijfers[i]=="K" || cijfers[i]=="k") {
  150. cijfers[i]=20; }
  151. else if (cijfers[i]=="L" || cijfers[i]=="l") {
  152. cijfers[i]=21; }
  153. else if (cijfers[i]=="M" || cijfers[i]=="m") {
  154. cijfers[i]=22; }
  155. else if (cijfers[i]=="N" || cijfers[i]=="n") {
  156. cijfers[i]=23; }
  157. else if (cijfers[i]=="O" || cijfers[i]=="o") {
  158. cijfers[i]=24; }
  159. else if (cijfers[i]=="P" || cijfers[i]=="p") {
  160. cijfers[i]=25; }
  161. }
  162. var cijfers = cijfers.reverse();
  163. var dec = 0;
  164. for (i=0; i<grootte; i++)
  165. {
  166. var temp = (cijfers[i]*Math.pow(ei,i));
  167. var dec = Number(dec + temp);
  168. }
  169. document.formulier.dec.value=(dec);
  170. }
  171.  
  172. if (bin=="") {
  173. // DEC_BIN
  174. var dec1 = dec;
  175. var stappen = 80;
  176. for (i=stappen; i>=0; i= i - 1)
  177. {
  178. if (dec1>=Math.pow(2,i)) {
  179. bin += "1";
  180. dec1 = dec1-Math.pow(2,i); }
  181. else {
  182. bin += "0"; }
  183. }
  184. var first = bin.indexOf('1');
  185. bin = bin.substring(first);
  186. document.formulier.bin.value=(bin);
  187. }
  188.  
  189. var dec = document.formulier.dec.value;
  190. if (oct=="") {
  191. // DEC_OCT
  192. var dec1 = dec;
  193. var grootte = dec1.length;
  194. for (i=grootte; i>=0; i--)
  195. {
  196. var macht = Math.pow(8,i);
  197. if (dec1>=macht) {
  198. jan = dec1/macht;
  199. jan = Math.floor(jan);
  200.  
  201. var oct = oct + jan;
  202. jan = jan*macht;
  203. dec1 = dec1-jan;
  204. }
  205. else if(dec1<macht) {
  206. oct = oct + 0; }
  207. }
  208. while ( oct.charAt(0) == "0") {
  209. oct = oct.substring(1); }
  210. document.formulier.oct.value=(oct);
  211. }
  212.  
  213. if (hex=="") {
  214. // DEC_HEX
  215. var dec1 = dec;
  216. var grootte = dec1.length;
  217. for (i=grootte; i>=0; i--)
  218. {
  219. var macht = Math.pow(16,i);
  220. if (dec1>=macht) {
  221. jan = dec1/macht;
  222. jan = Math.floor(jan);
  223. var jan1 = jan;
  224. if (jan=="10") {
  225. jan = "A"; }
  226. else if (jan=="11") {
  227. jan = "B"; }
  228. else if (jan=="12") {
  229. jan = "C"; }
  230. else if (jan=="13") {
  231. jan = "D"; }
  232. else if (jan=="14") {
  233. jan = "E"; }
  234. else if (jan=="15") {
  235. jan = "F"; }
  236.  
  237. var hex = hex + jan;
  238. jan1 = jan1*macht;
  239. dec1 = dec1-jan1;
  240. }
  241. else if(dec1<macht) {
  242. hex = hex + 0; }
  243. }
  244. while ( hex.charAt(0) == "0") {
  245. hex = hex.substring(1); }
  246. document.formulier.hex.value=(hex);
  247. }
  248.  
  249. if (ei!="" && eigen=="") {
  250. // DEC_X
  251. var jan;
  252. var grootte = dec.length;
  253. for (i=grootte; i>=0; i--)
  254. {
  255. var macht = Math.pow(ei,i);
  256. if (dec>=macht) {
  257. jan = dec/macht;
  258. jan = Math.floor(jan);
  259. var jan1 = jan;
  260. if (jan=="10") {
  261. jan = "A"; }
  262. else if (jan=="11") {
  263. jan = "B"; }
  264. else if (jan=="12") {
  265. jan = "C"; }
  266. else if (jan=="13") {
  267. jan = "D"; }
  268. else if (jan=="14") {
  269. jan = "E"; }
  270. else if (jan=="15") {
  271. jan = "F"; }
  272. else if (jan=="16") {
  273. jan = "G"; }
  274. else if (jan=="17") {
  275. jan = "H"; }
  276. else if (jan=="18") {
  277. jan = "I"; }
  278. else if (jan=="19") {
  279. jan = "J"; }
  280. else if (jan=="20") {
  281. jan = "K"; }
  282. else if (jan=="21") {
  283. jan = "L"; }
  284. else if (jan=="23") {
  285. jan = "M"; }
  286. else if (jan=="24") {
  287. jan = "N"; }
  288. else if (jan=="25") {
  289. jan = "O"; }
  290.  
  291. var eigen = eigen + jan;
  292. jan1 = jan1*macht;
  293. dec = dec-jan1;
  294.  
  295. }
  296. else if(dec<macht) {
  297. eigen = eigen + 0; }
  298. }
  299. while ( eigen.charAt(0) == "0") {
  300. eigen = eigen.substring(1); }
  301. document.formulier.eigen.value=(eigen);
  302. }
  303. }
  304. //-->


  1. <form name="formulier" action="">
  2. <table width="200" border="0">
  3. <tr>
  4. <td><label for="bin">2</label></td>
  5. <td><input name="bin" type="text" onkeypress="return check_2(event)" id="bin" class="tekstbox" onfocus="this.className='tekstbox_on'" onblur="this.className='tekstbox'" /></td>
  6. </tr>
  7. <tr>
  8. <td><label for="oct">8</label></td>
  9. <td><input name="oct" type="text" onkeypress="return check_8(event)" id="oct" class="tekstbox" onfocus="this.className='tekstbox_on'" onblur="this.className='tekstbox'" /></td>
  10. </tr>
  11. <tr>
  12. <td><label for="dec">10</label></td>
  13. <td><input name="dec" type="text" onkeypress="return check_10(event)" id="dec" class="tekstbox" onfocus="this.className='tekstbox_on'" onblur="this.className='tekstbox'" /></td>
  14. </tr>
  15. <tr>
  16. <td><label for="hex">16</label></td>
  17. <td><input name="hex" type="text" onkeypress="return check_16(event)" id="hex" class="tekstbox" onfocus="this.className='tekstbox_on'" onblur="this.className='tekstbox'" /></td>
  18. </tr>
  19. <tr>
  20. <td><input type="text" name="ei" id="ei" maxlength="2" size="2" class="tekstbox" onfocus="this.className='tekstbox_on'" onblur="this.className='tekstbox'" /></td>
  21. <td><input name="eigen" type="text" id="eigen" onkeypress="return check_x(event)" class="tekstbox" onfocus="this.className='tekstbox_on'" onblur="this.className='tekstbox'" /></td>
  22. </tr>
  23. <tr>
  24. <td>&nbsp;</td>
  25. <td><input type="button" class="button" onclick="getallen()" value="Bereken" />
  26. <input type="reset" class="button" value="Wissen"/></td>
  27. </tr>
  28. </table></form>
Download code! Download code (.txt)

 Bekijk een voorbeeld van dit script!
 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (2)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.037s