Ссылка, указанная содержит коды, в который выполняет преобразование, на странице, не затемненные:
function OnConvert()
{
hex = document.calcform.hex.value;
hex = hex.match(/[0-9A-Fa-f]{2}/g);
len = hex.length;
if(len==0) return;
txt='';
for(i=0; i<len; i++)
{
h = hex[i];
code = parseInt(h,16);
t = String.fromCharCode(code);
txt += t;
}
document.calcform.txt.value = txt;
}
Я не понимаю вашу задачу ясно, так как если вы будете ввести е. г. EEEFFA
там в форме, вы получите îïú
как выход, что, на мой взгляд, расширено ASCII. Но есть простой способ достичь той же функции в рубине.
▶ "EEEFFA".scan(/[0-9a-f]{2}/i).map { |cp| cp.to_i(16) }.inject('', &:concat)
#⇒ "îïú"
UPD Как я понял из комментариев, вы хотите преобразовать каждые 8 нулей и единиц на соответствующий ASCII буквы. Здесь вы идете (если у вас есть длинная строка, содержащие нули и единицы):
▶ '010000010100001001000011'.
▷ scan(/[01]{8}/). # allow only zeros and ones, scan by 8
▷ map { |e| e.to_i 2 }. # convert to integers, base 10
▷ inject '', &:concat # concatenate into one string
#⇒ 'ABC'
Я, вероятно, не должен был включать эту ссылку ... Я имею в виду, я хочу ввести что-то вроде «01000001» .some_functions_and_things и получить значение «A». Как вы думаете, вы могли бы мне помочь? Я не очень опытен, и я не понимаю, что происходит в вашем коде. Моя программа будет разрешать только байты 00000000 до 01111111 –
'' 01000001 ".to_i (2) .chr' – mudasobwa
Отлично! Спасибо, что написано для меня. –