![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Биты [D7, XP]
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 и мхмл последней версии обязательны.
оплатившие сегодня получат скидку.