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

Вниз

Биты   Найти похожие ветки 

 
AlexIdx   (2011-02-05 14:49) [0]

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

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


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


 
Плохиш ©   (2011-02-05 14:51) [1]

И настало время сдачи лабораторных и зачëтов...


 
MBo ©   (2011-02-05 15:36) [2]

А какие побитовые операции тебе известны?


 
XOR   (2011-02-05 16:00) [3]

допустим, 3 бита начиная со 2-го бита

e := s and $1C; // 1Ch = 00011100b


 
KilkennyCat ©   (2011-02-05 19:39) [4]


> какие побитовые операции

копать, не копать.

> XOR   (05.02.11 16:00) [3]

не совсем так, в тз сказано "взять" а не "скопировать". имхо, подразумевается вырезание.


 
Amoeba_   (2011-02-05 20:01) [5]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=838


 
Anatoly Podgoretsky ©   (2011-02-05 20:22) [6]

Чтобы получилось 00000h


 
Sha ©   (2011-02-05 22:41) [7]

> Anatoly Podgoretsky ©   (05.02.11 20:22) [6]

от байта останется 00000b


 
Anatoly Podgoretsky ©   (2011-02-05 23:25) [8]

> Sha  (05.02.2011 22:41:07)  [7]

Боже мой, как я лоханулся.


 
KilkennyCat ©   (2011-02-05 23:32) [9]

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


 
Anatoly Podgoretsky ©   (2011-02-05 23:34) [10]

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

Нужен dotbit 4


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

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

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


 
brother ©   (2011-02-08 06:33) [12]

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

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


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

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

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

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, вы там про кнопку "донейт" не забудьте...) Бальшую такую, во весь экран, поверх всех окон, не убирающуюся...)))


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

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


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


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

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

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


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

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

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


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


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


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


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

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


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


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

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


 
clickmaker ©   (2011-02-09 11:54) [19]

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

16 / 3 = 8 ?


 
Amoeba_   (2011-02-09 12:09) [20]


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

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


 
RWolf ©   (2011-02-09 17:53) [22]


> (09.02.11 17:37) [21]

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


 
McSimm ©   (2011-02-09 18:50) [25]

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


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


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


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


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


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


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


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


 
Dennis I. Komarov ©   (2011-02-10 17:03) [27]


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

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


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

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



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

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

Наверх




Память: 0.52 MB
Время: 0.01 c
2-1297686311
Ghost del vonte
2011-02-14 15:25
2011.05.22
Определение Left и Top у ячейки в DrawGrid


15-1296821313
qazxsw
2011-02-04 15:08
2011.05.22
Доступ к видио карте


2-1297450505
Женя
2011-02-11 21:55
2011.05.22
Ссылки(2)


2-1297334588
RUu
2011-02-10 13:43
2011.05.22
invalid pointer operation


13-1126698091
DenisUA
2005-09-14 15:41
2011.05.22
Подскажите задачу!