Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: CL | DM;

Вниз

Работа с битами   Найти похожие ветки 

 
Alek ©   (2004-06-17 13:28) [0]

Добрый день всем!

Есть вопросик.
Вот у меня есть три байта

например "qwe" в них находится 18 бит.
Так вот как мне получить только первый 6 бит??


 
clickmaker ©   (2004-06-17 13:33) [1]

6Bits := 18Bits and $3F;


 
Rater   (2004-06-17 13:38) [2]

Ну в зависимости от того с какой стороны он у тебя или в q или e
посмотреть какой там бит Я на вскидку могу предложить сделать ротацию в лево (6 или 2) и сравнить с 10000000b = 128 если больше либо равно то бит 1 иначе 0.
Наверно есть проще метод.


 
evvcom ©   (2004-06-17 13:44) [3]

В трех байтах вообще-то 24 бита, а не 18. А для строчных "qwe" как раз 6-й бит равен 1 (при нумерации битов в байте справа налево, начиная с 0), так его что, игнорировать? Тогда получишь "QWE".


 
Alek ©   (2004-06-17 13:56) [4]


> evvcom ©   (17.06.04 13:44) [3]


а ведь ты прав :) в одном байте 8 бит :).

Вообщем идея такова, есть строка ее нужно разбить на блоки по 6 бит, и каждые 6 бит обозначиьт каким нить знаком. Как это лучше сделать?? А то я очень плохо работаю с битами.


 
Alek ©   (2004-06-17 15:06) [5]

Хорошо тогда вот такой вопрос.

Как мне узнать биты например вот этого символа "я"??
в таком виде

00100000


 
Anatoly Podgoretsky ©   (2004-06-17 15:17) [6]

Это называется Base64


 
Alek ©   (2004-06-17 15:45) [7]

Огромное спасибо Анатолий за подсказку :)


 
TUser ©   (2004-06-17 15:57) [8]


> Вообщем идея такова, есть строка ее нужно разбить на блоки
> по 6 бит, и каждые 6 бит обозначиьт каким нить знаком. Как
> это лучше сделать??

Лучше возьми класс TBits. Хотя, если для самообразования, - то наверное, лучше ручками. Для получения в виду 100010... надо записать число в 2-ричной системе. Примерно так
result:=""; i:=ord(c); // c:char
while i>0 do begin
  result:=chr(i mod 2) + result;
  i:=i shr 1;
  end;
Еще, кстати, у Анатолия на сайте есть описание приемов работы с битами.

ЗЫ. Архиватор будет или что?



Страницы: 1 вся ветка

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
9-1077131254
Zeqfreed
2004-02-18 22:07
2004.07.04
Посмотрите на "игру"


1-1087556303
din
2004-06-18 14:58
2004.07.04
Почему не выводит canvas


14-1087497218
KilkennyCat
2004-06-17 22:33
2004.07.04
Калеки! Т.е., коллеги! У кого есть "Мазда", "Сузуки", "Тойота"?


3-1086611120
my-fame
2004-06-07 16:25
2004.07.04
Дата обновления процедур


4-1085204229
Dennisius
2004-05-22 09:37
2004.07.04
Независмое состояние