Перевод букв в двоичную систему счисления
Вложений: 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, время: 02:15. |