Перевод букв в двоичную систему счисления
Вложений: 1
Нужен скрипт который переводит русские буквы алфавита в двоичную систему счисления, согласно с таблицей CP-1251.
|
сколько платите? :)
|
мы студенты небогатые)
дайте хоть совет чтоль) |
ну как же.. берешь десятичный код из код.таблицы и переводишь его в двоичный :) всё)))
|
ладно, сколько?)
|
что-то или я туплю, или вот это работает:
<script>
function getBin( str ){
var ex = str.charCodeAt( 0 );
if ( ex>0xFF ){ ex-=0x350; }
var bin = "";
do
{
if( ex & 1 ){ bin += '1';}
else { bin += '0'; }
ex = ex >> 1;
}while( ex );
return ( '\u202E' + bin );
}
var str = "о";
alert(getBin( str ));
</script>
бесплатно :) |
да, забыл.. кодировка на странице со скриптом обязательно должна быть UTF-8 :)
|
спасибо)
Но как это работает?:) |
Цитата:
<script>
function getBin( str ){
var ex = str.charCodeAt( 0 );
if ( ex>0xFF ){ ex-=0x350; }
var bin = "";
do
{
if( ex & 1 ){ bin += '1';}
else { bin += '0'; }
ex = ex >> 1;
}while( ex );
return ( '\u202E' + bin );
}
var str = "Ё";
alert([getBin( str ), '10101000'].join('\n'));
</script>
BTW, Number.prototype.toString умеет работать с произвольными основаниями. |
Цитата:
ну, например, так:
<html>
<head>
<script>
window.onload = function() {
function getBin( str ){
var ex = str.charCodeAt( 0 );
if ( ex>0xFF ){ ex-=0x350; }
var bin = "";
do
{
if( ex & 1 ){ bin += '1';}
else { bin += '0'; }
ex = ex >> 1;
}while( ex );
alert( '\u202E' + bin );
}
var ratevalue = document.getElementById('txt');
var mark = document.getElementById('button');
var i;
mark.onclick = function() { i = ratevalue.value; getBin(i); }
}
</script>
</head>
<body>
<div>
Введите ОДНУ букву: <br>
<input type="text" id="txt"/>
<button id='button'> Получить бинарное представление </button>
</div>
</body>
</html>
|
Цитата:
кстати, да... |
Я имел в виду небольшие комментарии к строкам)
Печально, что только для одной буквы( Мне надо чтобы скрипт переводил текст в двоичную систему и проделывал ИСКЛ ИЛИ с другим вводимым текстом. Причем второй текст, если не хватает символов повторялся циклически. |
Цитата:
но всё-таки, это уже будет готовая работа, поэтому порядка ради — 5$ :) |
Допустим у нас есть два поля для ввода, назовем их тхт1 и тхт2, со значениями ЯБЛОКО и РОТ соответственно. Скрипт берет тхт1 и тхт2, переводит каждую буквы в бинарную сс. Проделывает ИСКЛЮЧАЮЩЕЕ ИЛИ.
Я^Р Б^О Л^Т О^Р К^О О^Т Что-то типо этого) |
А из получившиеся двоичные числа, опять в текст)
|
http://www.webforever.info/binaryDecode/coder.php вот переводчик)
|
Цитата:
типо на входе два параметра - на выходе итог Если весь огород для шифрования, то есть более простые и эффективные алгоритмы |
Друг, объясни пожалуйста, в этой строке if ( ex>0xFF ){ ex-=0x350; } почему нужно именно "0x350" вычитать? Не просто же так число взято, но почему именно "0x350"?
|
0x350 (или 848 в десятичной) - это разница между позицией кириллической буквы в utf16 и CP-1251
js все строки держит в utf16, вот и вычитаем |
Alexandroppolus, Спасибо! Всё понял.:thanks:
|
| Часовой пояс GMT +3, время: 10:02. |