![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перевёртывание бит в байте [D2005, XP]
Sergey © (2016-06-22 20:02:00)Здравствуйте. Дано: числа в десятеричной системе счисления
0, 1, 2, 3, 4, 5, 6, 7
По таблице перевода в двоичную систему счисления это будет:
0-000
1-001
2-010
3-011
4-100
5-101
6-110
7-111
Мне нужно как то передвинуть биты, чтобы получились мне нужные биты по такой таблице истинности:
0-000
1-100
2-010
3-110
4-001
5-101
6-011
7-111
Как бы вижу закономерность, нужно сдвигать биты вправо, операцией shr. Но она не работает правильно. Подскажите, есть ли встроенные функции. Или нужно переписывать ручками?
эээ (2016-07-01 23:27:00) [1]Удалено модератором
Kilkennycat (2016-07-01 20:27:00) [2]
> Юрий Зотов © (01.07.16 10:27) [31]
ну, свет тоже то волна, то частица. так и файл, то с размером, то без :)
А собственно, результат работы компьютера вообще нечто непонятное.
SergP (2016-07-01 19:39:00) [3]
> _Amoeba (30.06.16 16:39) [6]
>
>
> например
> ror AX,8
> даст обратное расположение битов
Оно даст не обратное расположение битов, а обратное расположение байтов в слове.
ййй (2016-07-01 12:53:00) [4]Удалено модератором
qqq (2016-07-01 10:55:00) [5]Удалено модератором
Юрий Зотов (2016-07-01 10:27:00) [6]> KilkennyCat © (01.07.16 09:17) [24]
> как и размер у файла.
Костя, у файла нет размера.
1. Какой размер имеют предопределенные файлы SysIn, SysOut, SysErr, COM1? Никакого.
2. Фрагмент программы:
var F: file of byte; ... AssignFile(F, 'C:\MyFile');
Какой размер теперь имеет имеет файл? Никакого.
Ты впал в то самое заблуждение: отождествляешь физический набор данных (у которого размер есть) и логический файл (у которого размера нет).
Да, их отождествление удобно, мы им пользуемся и к нему привыкли. Но от этого логический и физический наборы данных не становятся одним и тем же.
dfg (2016-07-01 09:45:00) [7]Удалено модератором
Юрий Зотов (2016-07-01 09:41:00) [8]Удалено модератором
dfg (2016-07-01 09:35:00) [9]Удалено модератором
Юрий Зотов (2016-07-01 09:30:00) [10]Удалено модератором
dfg (2016-07-01 09:26:00) [11]Удалено модератором
dfg (2016-07-01 09:18:00) [12]Удалено модератором
KilkennyCat (2016-07-01 09:17:00) [13]Удалено модератором
Юрий Зотов (2016-07-01 09:03:00) [14]Удалено модератором
KilkennyCat (2016-07-01 08:56:00) [15]Удалено модератором
dfg (2016-07-01 08:43:00) [16]Удалено модератором
Германн (2016-07-01 00:33:00) [17]Удалено модератором
Юрий Зотов (2016-07-01 00:31:00) [18]> Германн © (01.07.16 00:24) [18]
> Возражу. Минимальная обрабатываемая единица информации это
> всё-таки бит!
> А то что некоторые процессоры об этом не знают - это их
> проблема. :)
Если процессор умеет обрабатывать отдельные биты, то это просто означает, что байт у этого процессора состоит из одного бита. Только и всего.
Германн (2016-07-01 00:24:00) [19]
> Юрий Зотов © (30.06.16 21:53) [11]
>
> Байт - это просто минимально обрабатываемая единица информации.
>
Возражу. Минимальная обрабатываемая единица информации это всё-таки бит!
А то что некоторые процессоры об этом не знают - это их проблема. :)
Германн (2016-07-01 00:16:00) [20]
> я уже не говорю, что надо сначала найти трехбитные байты
> Rouse_ © (30.06.16 18:27) [8]
>
> Трехбитные байты? :) пожалуй украду себе в цитатник :)
>
А что их искать-то? Автор говорит что разбирается с протоколом MODBUS. В его конкретной реализации можно найти байты с любым количеством информационных бит (но не более 8). Более того в этих реализациях можно найти даже "байты с дырками"! :)
Т.е. на примере автора это будет
0-0х0хх0
1-0х0хх1
2-0х1хх0
3-0х1хх1
4-1х0хх0
5-1х0хх1
6-1х1хх0
7-1х1хх1
где х - это биты не несущие никакой информации и могут иметь любое значение (0/1).