Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.05.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.003 c
15-1296342105
@!!ex
2011-01-30 02:01
2011.05.22
Delphi ломает hadl linkи


2-1297684583
Den
2011-02-14 14:56
2011.05.22
Уменьшить размер памяти занимаемой приложением


2-1297406686
ВашеИмя
2011-02-11 09:44
2011.05.22
Взаимодействие форм


2-1297847287
RWolf
2011-02-16 12:08
2011.05.22
AV в API callback


2-1297437513
novai
2011-02-11 18:18
2011.05.22
как правильно описать функцию с разными выходами?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский