diff --git a/szamrendszer.js b/szamrendszer.js index eba2ecb..69ad5a5 100644 --- a/szamrendszer.js +++ b/szamrendszer.js @@ -1,174 +1,62 @@ -$(document).ready(function(){ - var inputNumber = 0; - var selectedOption = ""; - var answer = 0; +document.addEventListener("DOMContentLoaded", function () { + const inputValue = document.getElementById("érték"); + const inputBase = document.getElementById("bevitel"); + const outputBase = document.getElementById("kimenet"); + const outputValue = document.getElementById("kiszámoltérték"); + const convertButton = document.getElementById("számolás"); + const swapButton = document.getElementById("felcserélés"); - $("#inputNumber").keyup(function(){ - inputNumber = $(this).val(); - setAnswer(""); - activeDieactiveBtn(); - }) - $("#fromTo").change(function(){ - selectedOption = $(this).val(); - activeDieactiveBtn(); - }) - - - $("#convertBtn").click(function(){ - if(selectedOption == "decimal to binary" && inputNumber != ""){ - answer = convertDecimalToBinary(inputNumber); - setAnswer(answer); - }else if(selectedOption == "binary to decimal" && inputNumber != ""){ - answer = convertBinaryToDecimal(inputNumber); - setAnswer(answer); - }else if(selectedOption == "decimal to hexadecimal" && inputNumber != ""){ - answer = convertDecimalToHexadecimal(inputNumber); - setAnswer(answer); - }else if(selectedOption == "hexadecimal to decimal" && inputNumber != ""){ - answer = convertHexadecimalToDecimal(inputNumber); - setAnswer(answer); - }else if(selectedOption == "binary to hexadecimal" && inputNumber != ""){ - var decimalVal = convertBinaryToDecimal(inputNumber); - answer = convertDecimalToHexadecimal(decimalVal); - setAnswer(answer); - }else if(selectedOption == "hexadecimal to binary" && inputNumber != ""){ - var decimalVal = convertHexadecimalToDecimal(inputNumber); - answer = convertDecimalToBinary(decimalVal); - setAnswer(answer); - }else{ - resetAll(); - } - }) - - $("#resetBtn").click(function(){ - resetAll(); - }) - -}) + function convertNumber(value, fromBase, toBase) { + let decimalValue; + + // Convert input to decimal first + switch (fromBase) { + case "bináris": + decimalValue = parseInt(value, 2); + break; + case "oktális": + decimalValue = parseInt(value, 8); + break; + case "decimális": + decimalValue = parseInt(value, 10); + break; + case "hexadecimális": + decimalValue = parseInt(value, 16); + break; + default: + return "Hibás bemenet"; + } + + if (isNaN(decimalValue)) { + return "Érvénytelen szám"; + } + + // Convert decimal to target base + switch (toBase) { + case "bináris": + return decimalValue.toString(2); + case "oktális": + return decimalValue.toString(8); + case "decimális": + return decimalValue.toString(10); + case "hexadecimális": + return decimalValue.toString(16).toUpperCase(); + default: + return "Hibás átváltás"; + } + } -function activeDieactiveBtn(){ - - var inputNumber = $("#inputNumber").val(); - var selectedOption = $("#fromTo").val(); - - if(inputNumber != "" && selectedOption != ""){ - $("#convertBtn").prop("disabled",false); - }else{ - $("#convertBtn").prop("disabled",true); - } - - if(inputNumber != "" || selectedOption != ""){ - $("#resetBtn").prop("disabled",false); - }else{ - $("#resetBtn").prop("disabled",true); - } - -} + convertButton.addEventListener("click", function () { + const value = inputValue.value.trim(); + const fromBase = inputBase.value; + const toBase = outputBase.value; + + outputValue.value = convertNumber(value, fromBase, toBase); + }); -function setAnswer(answer){ - $("#showAnswer").html(answer); -} - -function resetAll(){ - $("#convertBtn").prop("disabled",true); - $("#showAnswer").html(""); - $("#inputNumber").val(""); - $("#fromTo").val("").change(); - $(this).prop("disabled",true); -} - - -// main functions -function convertDecimalToBinary(inputNumber){ - var answer = ""; - if(!isNaN(inputNumber)){ - inputNumber = Number(inputNumber); - var remainder = 0; - while(inputNumber != 0){ - remainder = inputNumber % 2; - inputNumber = ((inputNumber - remainder) / 2); - answer = remainder + answer; - } - }else{ - answer = 'This is not decimal number!'; - } - return answer; -} - -function convertBinaryToDecimal(inputNumber){ - inputNumber = inputNumber.toString(); - var numberLen = inputNumber.length; - var position = numberLen; - var answer = 0; - for(var i = 0; i < numberLen; i++){ - if(inputNumber[i] == '0' || inputNumber[i] == '1'){ - position--; - answer = answer + ( Number(inputNumber[i]) * Math.pow(2, position) ); - }else{ - answer = 'This is not binary number!'; - } - } - return answer; -} - -function convertDecimalToHexadecimal(inputNumber){ - inputNumber = Number(inputNumber); - var remainder = 0; - var answer = ""; - if(!isNaN(inputNumber)){ - inputNumber = Number(inputNumber); - while(inputNumber != 0){ - remainder = inputNumber % 16; - inputNumber = ((inputNumber - remainder) / 16); - if(remainder == 10){ - answer = 'A' + answer; - }else if(remainder == 11){ - answer = 'B' + answer; - }else if(remainder == 12){ - answer = 'C' + answer; - }else if(remainder == 13){ - answer = 'D' + answer; - }else if(remainder == 14){ - answer = 'E' + answer; - }else if(remainder == 15){ - answer = 'F' + answer; - }else{ - answer = remainder + answer; - } - } - }else{ - answer = 'This is not decimal number!'; - } - return answer; -} - -function convertHexadecimalToDecimal(inputNumber){ - inputNumber = inputNumber.toString(); - var numberLen = inputNumber.length; - var position = numberLen; - var answer = 0; - for(var i = 0; i < numberLen; i++){ - var num = inputNumber[i]; - if(num == 'A'){ - num = 10; - }else if(num == 'B'){ - num = 11; - }else if(num == 'C'){ - num = 12; - }else if(num == 'D'){ - num = 13; - }else if(num == 'E'){ - num = 14; - }else if(num == 'F'){ - num = 15; - }else if(num >= '0' && num <= '9'){ - num = Number(num); - }else{ - answer = 'This is not Hexadecimal number!'; - return answer; - } - position--; - answer = answer + (num* Math.pow(16,position)); - } - return answer; -} \ No newline at end of file + swapButton.addEventListener("click", function () { + const tempValue = inputBase.value; + inputBase.value = outputBase.value; + outputBase.value = tempValue; + }); +}); \ No newline at end of file