webaib1 |
Дискретная. Логические операции между словами разной длинны? 12.09.2007, 15:36 |
|
30/08/07 13
|
Есть задача, нужно проверить некую 32-х битную последовательность на пренадлежность к одной из инструкций "I" - легальная = 1 иначе 0.
Нужная инстуркция содержит всегда 0 в старших 6 битах, по середке может быть все подряд и младшие 6 бит принимают следующие значения
01 0000
01 0001
и от 00 0000 до 00 1111
Есть решение:
рез = not I[31:26] and (I[5:4] or not{I[5] and I[4] and I[3:1]})
мне не совсем ясно как считается в этом случае. Допустим я еще понимаю not I[31:26] - тут мы получаем просто 1, но потом как...
|
|
|
|
|
PAV |
12.09.2007, 16:08 |
|
Супермодератор |
|
29/07/05 8248 Москва
|
Вы хотите создать решение или понять существующее?
Может быть, проще сделать что-то вроде
res = ( x < (1<<26)) && ( (x&63) < 18)
|
|
|
|
|
webaib1 |
12.09.2007, 21:14 |
|
30/08/07 13
|
Я хотел бы конечно сначала разобраться с уже готовым решением, а потом попробовать найти новое. Я думал, что любое слово в котором есть хотя бы один бит отличный от 0 считается правдой. Это предположение действует на первую часть решения и вторую, т.е. I[31:26] всегда 0 => их отрицание всегда 1. Потом I[5:4] в двух случаях принимает значение 01 и тогда считается 1. Но дальше не понятно, почему если I[5:4] = 00 мы отдельно проверяем и 5 и 4 бит и уж совесм не понятно почему проверяется с 3 по 1 бит и уж тем более зачем когда они могут принимать любое значение от 0000 и до 1111?
|
|
|
|
|
PAV |
12.09.2007, 22:08 |
|
Супермодератор |
|
29/07/05 8248 Москва
|
Насколько я могу понять, у Вас в записи следующая ошибка: не должно быть фигурных скобок. Второй not должен действовать только на I[5]. Если хотите, можно открывающуюся фигурную скобку перенести перед этим not, хотя это излишне, так как по приоритету and выполняется раньше, чем or. Тогда вроде как все сходится. Либо оба бита 4-5 должны быть нулями, тогда содержимое самых младших годится любое, либо 5-ый ноль, 4-ый единица, с 1 по 3 должны быть нули, а последний любой.
Переношу в Computer Science.
|
|
|
|
|
webaib1 |
13.09.2007, 08:57 |
|
30/08/07 13
|
То есть мое предположение правильно, любое слово хотя бы с одной 1 - это 1. Просто такое решение меня запутало. Его тогда нужно переписать так
not I[31:26] and (not I[5:4] or not I[5] and I[4] and not I[3:1])
|
|
|
|
|
PAV |
13.09.2007, 09:34 |
|
Супермодератор |
|
29/07/05 8248 Москва
|
|
|
|
|
|
Страница 1 из 1
|
[ Сообщений: 6 ] |
|
Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы