Задания
Версия для печати и копирования в MS Word
Тип Д5 № 3409
i

У ис­пол­ни­те­ля, ко­то­рый ра­бо­та­ет с по­ло­жи­тель­ны­ми од­но­бай­то­вы­ми дво­ич­ны­ми чис­ла­ми, две ко­ман­ды, ко­то­рым при­сво­е­ны но­ме­ра:

1.  сдвинь влево

2.  вычти 1

Вы­пол­няя первую из них, ис­пол­ни­тель сдви­га­ет число на один дво­ич­ный раз­ряд влево, причём на место осво­бо­див­ше­го­ся бита ста­вит­ся 0. Вы­пол­няя вто­рую ко­ман­ду ис­пол­ни­тель вы­чи­та­ет из числа 1. Ис­пол­ни­тель начал вы­чис­ле­ния с числа 91 и вы­пол­нил це­поч­ку ко­манд 112112. За­пи­ши­те ре­зуль­тат в де­ся­тич­ной си­сте­ме.

Спрятать решение

Ре­ше­ние.

Если в стар­шем раз­ря­де дво­ич­но­го числа нет еди­ни­цы, то ко­ман­да 1 удва­и­ва­ет число, если еди­ни­ца есть (т. е. де­ся­тич­ное число не мень­ше 128), то вы­во­дит­ся оста­ток от де­ле­ния удво­ен­но­го числа на 256. Таким об­ра­зом, по­лу­чим сле­ду­ю­щее:

 

1: 91 => 182,

1: 182 => 108 (оста­ток от 364 / 256 ),

2: 108 => 107,

1: 107 => 214,

1: 214 => 172 (оста­ток от 428 / 256 ),

2: 172 => 171.

 

Ответ: 171.

 

При­ме­ча­ние.

За­ме­тим, что в со­от­вет­ствии с усло­ви­ем про­грам­ма ра­бо­та­ет с од­но­бай­то­вы­ми чис­ла­ми. Если в стар­шем (седь­мом, если счи­тать спра­ва на­ле­во на­чи­ная с 0) раз­ря­де числа стоит еди­ни­ца, то при сдви­ге числа влево эта еди­ни­ца вы­хо­дит за раз­ряд­ную сетку и те­ря­ет­ся. В ре­зуль­та­те при при­ме­не­нии опе­ра­ции сдви­га к числу, пре­вы­ша­ю­ще­му 127, то есть име­ю­ще­му еди­ни­цу в стар­шем раз­ря­де, по­лу­ча­ет­ся оста­ток от де­ле­ния дан­но­го числа на 256.

Раздел кодификатора ФИПИ: