Member
Статус: Не в сети Регистрация: 29.09.2004 Откуда: Курск
Здорово, народ!!! Вот такая вот задача... Как БЫСТРО сконвертировать однобайтовое число (ASCII-код) в строковый эквивалент, записанный с помощью нулей и единиц...
Ну т.е. было 57 стало "111001" ("00111001")...
Мой вариант, где текст из RichEdit'а преобразуется в строку, стостоящую из нулей и единичек:
Advanced member
Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
быстро говоришь? ... ну-ну
Код:
mov edi, offset OutBuffer mov al,Char mov ecx,8 AscizLoop: xor ah,ah shl al,1 adc ah,"0" mov byte ptr [edi],ah inc edi dec ecx jnz AscizLoop mov byte ptr [edi],0
Добавлено спустя 12 минут, 36 секунд: или еще быстрее:
Код:
.const BinTable label dword db "0","0","0","0" db "0","0","0","1" db "0","0","1","0" db "0","0","1","1" db "0","1","0","0" db "0","1","0","1" db "0","1","1","0" db "0","1","1","1" db "1","0","0","0" db "1","0","0","1" db "1","0","1","0" db "1","0","1","1" db "1","1","0","0" db "1","1","0","1" db "1","1","1","0" db "1","1","1","1" .code movzx eax,Char mov edx,eax and eax,1111b shr edx,4 mov eax,[eax*4+BinTable] ; младшие 4 символа mov edx,[edx*4+BinTable] ; старшие 4 символа
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения