#include <stdio.h>
int main(void)
{
unsigned value = 5;
printf("%u", value << 2);
return 0;
}
Два простых вопроса по архитектуре ЭВМ
Какой арифметической операции эквивалентен сдвиг двоичного числа влево на два разряда? Ответ проиллюстрируйте примером.
Я знаю, что сдвиг числа влево на два разряда эквивалентен умножению на 2, а вот с примером проблемы, не могу ничего придумать
Какой адрес хранится в счетчике команд, если в данный момент исполняется однобайтовая команда, находящаяся по адресу 5B3D9H?
Здесь я вообще не знаю, что отвечать
Заранее спасибо.
чтобы сдвинуть на 1разряд нужно умножить число на 2^1,если на 2а разряда соответственно умножаем на 2^2..... вроде так было на лекциях :D
13*4=52
1101*100=110100
и 13 shl 2=52
1101<<2=110100
2) Зависит от проца. Либы на тикущию либы на следующую.
Цитата: Pavia
2) Зависит от проца. Либы на тикущию либы на следующую.
А следующая это какая, не подскажете?
Цитата: parovozik
Помогите, плиз, двух вопросов не хватает, чтобы полностью работу доделать
Какой арифметической операции эквивалентен сдвиг двоичного числа влево на два разряда? Ответ проиллюстрируйте примером.
Я знаю, что сдвиг числа влево на два разряда эквивалентен умножению на 2, а вот с примером проблемы, не могу ничего придумать
Какой адрес хранится в счетчике команд, если в данный момент исполняется однобайтовая команда, находящаяся по адресу 5B3D9H?
Здесь я вообще не знаю, что отвечать
Заранее спасибо.
Какой арифметической операции эквивалентен сдвиг двоичного числа влево на два разряда? Ответ проиллюстрируйте примером.
Я знаю, что сдвиг числа влево на два разряда эквивалентен умножению на 2, а вот с примером проблемы, не могу ничего придумать
Какой адрес хранится в счетчике команд, если в данный момент исполняется однобайтовая команда, находящаяся по адресу 5B3D9H?
Здесь я вообще не знаю, что отвечать
Заранее спасибо.
1) Сдвиг некоторого целого числа на n разрядов влево эквивалентно умножению этого числа на 2 в степени n. Например
Код:
Напечатает число 20. То есть 5 << 2 эквивалентно выражению 5 * 2 ^ 2.
2) В счетчике команд будет хранится значение 5B3DАH, то есть 5B3D9H увеличеное на 1, так как текущая выполняемая команда занимает 1 байт, а счетчик адреса всегда указывает на следующую за текущей командой.