Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Биты [D7, XP]


Страницы:   1 2

AlexIdx ©   (2011-02-05 14:49:00) 

Есть переменная типа word. Мне нужно взять из нее N бит из позиции X и сохранить в другую переменную.

var
 s: word;
 e: byte;
begin
s:= $1234;
e:= {допустим, 3 бита начиная со 2-го бита};
end;


Как это сделать?


Студент   (2011-02-10 17:50:00) [1]

Переделан мною из функции IntToBin... :)
Как работают shl/shr понимаю, просто не додумался так сделать...(
Говорю ж - наспех делал...((


Dennis I. Komarov   (2011-02-10 17:03:00) [2]


> хм! Спасибо...)

Да не за что...
Исходя из того что в коде был использован shl, shr должен быть так же знаком, а так как сия задача тривиальна, я делаю вывод, что Вы не понимаете как работают эти операторы, отсюда это код не Ваш и [13] = false


Студент   (2011-02-10 16:13:00) [3]


> С чьей тетради?


ам... Со своей... С чьей же ещё-то?
Остальные у нас без тетрадей ходють... :)


> clickmaker ©   (09.02.11 11:54) [19]


Не понял про что вы...


> Dennis I. Komarov ©   (09.02.11 11:51) [18]


хм! Спасибо...)


McSimm   (2011-02-09 18:50:00) [4]

ну вы даете (на правах теста)


  (2011-02-09 18:27:00) [5]

Ура! Тег [code] побежден!


  (2011-02-09 18:27:00) [6]

закрывающий тег


RWolf   (2011-02-09 17:53:00) [7]


> (09.02.11 17:37) [21]

Решение shl+shr автору функции показалось слишком простым, видимо.


  (2011-02-09 17:37:00) [8]

Есть специальная функция - Извлечение из числа нужного количества бит, начиная с определённой позиции:

http://kladovka.net.ru/delphibase/?action=viewfunc&topic=mathcalc&id=10735


Amoeba_   (2011-02-09 12:09:00) [9]


> Есть переменная типа word. Мне нужно взять из нее N бит
> из позиции X и сохранить в другую переменную.

Хорошо бы было, если автор все-таки озвучил для решения какой собственно задачи ему нужна такая манипуляция.


clickmaker   (2011-02-09 11:54:00) [10]

> Мне там нужно было одну переменную типа Word "разрезать"
> на 3 переменные типа Byte

16 / 3 = 8 ?


Dennis I. Komarov   (2011-02-09 11:51:00) [11]


> Студент   (08.02.11 20:50) [13]

M. se connaît en déformations
e := s shl a shr b
параметры a и b вычислить...


Германн   (2011-02-09 02:47:00) [12]


> Я просто это сейчас с тетради перепечатывал

С чьей тетради? Вот в чём главный вопрос для студента! :)


Студент   (2011-02-09 01:14:00) [13]

ам... Ещё одна опечатка...(
Там параметр функции Value называется, а не W... Я просто это сейчас с тетради перепечатывал...)

... BitsFromWord( Value: Word; ...


> Еще загадочно, почему результат Byte, если "берут" из Word,
>  я ведь могу и 9 битов захотеть, а то и все 16.


Мне там нужно было одну переменную типа Word "разрезать" на 3 переменные типа Byte... Просто смотрю кому-то похожее понадобилось, думал помочь...)


Servy   (2011-02-09 00:47:00) [14]


> Делал наспех, но вроде фурычит

Value не определено, вероятно вы имели в виду W. Еще загадочно, почему результат Byte, если "берут" из Word, я ведь могу и 9 битов захотеть, а то и все 16.

А проблема этой ветки в том, что автор давно пропал и решение ему неинтересно. Иначе, он бы давно уточнил, что он имел в виду и какой результат он ожидает в e.


Студент   (2011-02-08 20:55:00) [15]

If (Value And (1 Shl i) )>0 Then * // скобку забыл


Студент   (2011-02-08 20:50:00) [16]

Да какие зачёты? Начало семестра вообще-то...

Мне как-то похожее требовалось... Делал наспех, но вроде фурычит:

Function BitsFromWord(W: Word; First, Last: Integer): Byte;
Var i: Integer;
Begin
Result:=0;
For i:=Last DownTo First Do
     Begin
     Result:=Result Shl 1;
     If (Value And (1 Shl i)>0 Then
           Result:=Result+1;
     End;
End;


З.Ы.  KilkennyCat, вы там про кнопку "донейт" не забудьте...) Бальшую такую, во весь экран, поверх всех окон, не убирающуюся...)))


brother   (2011-02-08 06:33:00) [17]

> по кат-копи-пасте битов из байта в байт. с возможностью
> пакетной обработки нескольких байтов. с русским интерфейсом,
> риббон-стиль, наличие дотнет 4 и мхмл последней версии
> обязательны.

и окно: Автор (О программе) - ОБЯЗАТЕЛЬНО! Иначе не ё)


XOR   (2011-02-06 11:07:00) [18]

>>KilkennyCat ©   (05.02.11 19:39) [4] не совсем так, в тз сказано "взять" а не "скопировать". имхо, подразумевается вырезание.

А оставшиеся биты переместить в Битовую Корзину, с целью последующего повторного использования или утилизации...


Anatoly Podgoretsky   (2011-02-05 23:34:00) [19]

> KilkennyCat  (05.02.2011 23:32:09)  [9]

Нужен dotbit 4


KilkennyCat   (2011-02-05 23:32:00) [20]

эх вы, мастера. ну ничего, слава богу, есть настоящий последний программист - это я. и сегодня же я напишу офигительнейшую программу по кат-копи-пасте битов из байта в байт. с возможностью пакетной обработки нескольких байтов. с русским интерфейсом, риббон-стиль, наличие дотнет 4 и мхмл последней версии обязательны.
оплатившие сегодня получат скидку.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо