Update szamrendszer.js
This commit is contained in:
parent
c8037ded0f
commit
d6a76b813e
218
szamrendszer.js
218
szamrendszer.js
|
@ -1,174 +1,62 @@
|
||||||
$(document).ready(function(){
|
document.addEventListener("DOMContentLoaded", function () {
|
||||||
var inputNumber = 0;
|
const inputValue = document.getElementById("érték");
|
||||||
var selectedOption = "";
|
const inputBase = document.getElementById("bevitel");
|
||||||
var answer = 0;
|
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(){
|
function convertNumber(value, fromBase, toBase) {
|
||||||
inputNumber = $(this).val();
|
let decimalValue;
|
||||||
setAnswer("");
|
|
||||||
activeDieactiveBtn();
|
|
||||||
})
|
|
||||||
$("#fromTo").change(function(){
|
|
||||||
selectedOption = $(this).val();
|
|
||||||
activeDieactiveBtn();
|
|
||||||
})
|
|
||||||
|
|
||||||
|
// Convert input to decimal first
|
||||||
$("#convertBtn").click(function(){
|
switch (fromBase) {
|
||||||
if(selectedOption == "decimal to binary" && inputNumber != ""){
|
case "bináris":
|
||||||
answer = convertDecimalToBinary(inputNumber);
|
decimalValue = parseInt(value, 2);
|
||||||
setAnswer(answer);
|
break;
|
||||||
}else if(selectedOption == "binary to decimal" && inputNumber != ""){
|
case "oktális":
|
||||||
answer = convertBinaryToDecimal(inputNumber);
|
decimalValue = parseInt(value, 8);
|
||||||
setAnswer(answer);
|
break;
|
||||||
}else if(selectedOption == "decimal to hexadecimal" && inputNumber != ""){
|
case "decimális":
|
||||||
answer = convertDecimalToHexadecimal(inputNumber);
|
decimalValue = parseInt(value, 10);
|
||||||
setAnswer(answer);
|
break;
|
||||||
}else if(selectedOption == "hexadecimal to decimal" && inputNumber != ""){
|
case "hexadecimális":
|
||||||
answer = convertHexadecimalToDecimal(inputNumber);
|
decimalValue = parseInt(value, 16);
|
||||||
setAnswer(answer);
|
break;
|
||||||
}else if(selectedOption == "binary to hexadecimal" && inputNumber != ""){
|
default:
|
||||||
var decimalVal = convertBinaryToDecimal(inputNumber);
|
return "Hibás bemenet";
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(inputNumber != "" || selectedOption != ""){
|
if (isNaN(decimalValue)) {
|
||||||
$("#resetBtn").prop("disabled",false);
|
return "Érvénytelen szám";
|
||||||
}else{
|
|
||||||
$("#resetBtn").prop("disabled",true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
// 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){
|
convertButton.addEventListener("click", function () {
|
||||||
$("#showAnswer").html(answer);
|
const value = inputValue.value.trim();
|
||||||
}
|
const fromBase = inputBase.value;
|
||||||
|
const toBase = outputBase.value;
|
||||||
|
|
||||||
function resetAll(){
|
outputValue.value = convertNumber(value, fromBase, toBase);
|
||||||
$("#convertBtn").prop("disabled",true);
|
});
|
||||||
$("#showAnswer").html("");
|
|
||||||
$("#inputNumber").val("");
|
|
||||||
$("#fromTo").val("").change();
|
|
||||||
$(this).prop("disabled",true);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
swapButton.addEventListener("click", function () {
|
||||||
// main functions
|
const tempValue = inputBase.value;
|
||||||
function convertDecimalToBinary(inputNumber){
|
inputBase.value = outputBase.value;
|
||||||
var answer = "";
|
outputBase.value = tempValue;
|
||||||
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;
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user