Update szamrendszer.js

This commit is contained in:
Barbara Zoé Juhász 2025-02-09 12:18:52 +00:00
parent c8037ded0f
commit d6a76b813e

View File

@ -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();
})
function convertNumber(value, fromBase, toBase) {
let decimalValue;
$("#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 activeDieactiveBtn(){
var inputNumber = $("#inputNumber").val();
var selectedOption = $("#fromTo").val();
if(inputNumber != "" && selectedOption != ""){
$("#convertBtn").prop("disabled",false);
}else{
$("#convertBtn").prop("disabled",true);
// 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(inputNumber != "" || selectedOption != ""){
$("#resetBtn").prop("disabled",false);
}else{
$("#resetBtn").prop("disabled",true);
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 setAnswer(answer){
$("#showAnswer").html(answer);
}
convertButton.addEventListener("click", function () {
const value = inputValue.value.trim();
const fromBase = inputBase.value;
const toBase = outputBase.value;
function resetAll(){
$("#convertBtn").prop("disabled",true);
$("#showAnswer").html("");
$("#inputNumber").val("");
$("#fromTo").val("").change();
$(this).prop("disabled",true);
}
outputValue.value = convertNumber(value, fromBase, toBase);
});
// 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 = '<span style="color: red;">This is not decimal number!</span>';
}
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 = '<span style="color: red;">This is not binary number!</span>';
}
}
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 = '<span style="color: red;">This is not decimal number!</span>';
}
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 = '<span style="color: red;">This is not Hexadecimal number!</span>';
return answer;
}
position--;
answer = answer + (num* Math.pow(16,position));
}
return answer;
}
swapButton.addEventListener("click", function () {
const tempValue = inputBase.value;
inputBase.value = outputBase.value;
outputBase.value = tempValue;
});
});