Перевод из шестнадцатиричной в двоичную систему
<script>
var num1 = String(window.prompt("Введите "))
//otvet = num1.split( /(?=(?:\d{2})+$)/ );
var otvet = [];
for(i = 0; i < num1.length; i+=2){
otvet[i] = num1.substring(i, i+2);
}
console.log(otvet);
if(otvet[0]=="26"){
x = parseInt(otvet[1], 16).toString(2);
console.log(x);
}else{document.write("Значение не является пакетом")}
</script>
Юзер вводит значение типа 26ff12, оно разбивается на массив 26, ff, 12. Если первое значение массива равно 26, то ff должно быть переведено в двоичную систему. Как из FF получить 11111111? |
vitalik891,
alert( parseInt("ff",16).toString(2))
|
vitalik891,
var num1 = "26ff12"
//otvet = num1.split( /(?=(?:\d{2})+$)/ );
var otvet = [];
for(var i = 0; i < num1.length/2; i++){
otvet[i] = num1.substring(i*2, i*2+2);
}
console.log(otvet);
if(otvet[0]=="26"){
x = parseInt(otvet[1], 16).toString(2);
alert(x);
}else{alert("Значение не является пакетом")}
|
Это, конечно, здорово, но юзер может ввести и 26f245
|
Цитата:
|
Либо я что-то не понимаю, либо у тебя значение не привязано к тому, что ввел юзер
var num1 = "26ff12" |
vitalik891,
так возьми исправленный цикл в свой код и вводи что тебе нужно |
Понял, спасибо.
Если тебя не затруднит, объясни в чем была ошибка, ведь значения в массиве были такие же |
vitalik891,
в нулевую ячейку заполнили и прыг во вторую , а кто первую будет заполнять которая otvet[1] |
Лолъ. Этот момент я не учел.
Благодарю :D |
| Часовой пояс GMT +3, время: 19:37. |