М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
9854123g
9854123g
21.04.2023 15:28 •  Информатика

Напишите правило перевода (алгоритм) отрицательных целых чисел в машинный код!

👇
Ответ:
jeniainna
jeniainna
21.04.2023
Можно записать две похожих формулировки правила перевода из десятичной системы в двоичную:

Формулировка 1. Для перевода чисел из десятичной системы в двоичную нужно разделить число на 2, где 2 — основание двоичной системы, и записать остаток от деления. Полученное частное снова разделить на 2 и также записать остаток. Повторять действия, пока частное не станет равным 0. Записать все остатки в обратном порядке.

Пример 1: переведем число 36 в двоичную систему счисления:

36 / 2 = 18в остатке 0
18 / 2 = 9в остатке 0
9 / 2 = 4в остатке 1
4 / 2 = 2в остатке 0
2 / 2 = 1в остатке 0
1 / 2 = 0в остатке 1
И запишем полученные остатки снизу вверх ↑

3610 = 1001002

Формулировка 2. Для перевода чисел из десятичной системы в двоичную нужно разделить число на 2, где 2 — основание двоичной системы, и записать остаток от деления. Полученное частное снова разделить на 2 и также записать остаток. Повторять действия, пока частное не станет равным 1. Записать последнее частное (1) и все остатки в обратном порядке.

Пример 2: переведем число 123 в двоичную систему счисления:

123 / 2 = 61в остатке 1
61 / 2 = 30в остатке 1
30 / 2 = 15в остатке 0
15 / 2 = 7в остатке 1
7 / 2 = 3в остатке 1
3 / 2 = 1в остатке 1
Последняя цифра — 1
И запишем эту последнюю 1 и остатки снизу вверх ↑

12310 = 11110112

|

Вторая формулировка напоминает нам, что первая цифра двоичного числа (кроме нуля, конечно) всегда равна единице и последнее действие можно не записывать, так как оно всегда одинаковое, в остальном она аналогична первой. Именно это правило используется в школе, только применяется запись в столбик, однако разделить число на 2 можно и без столбика : ), а запись получается более аккуратной, чем письмена наискось через всю страницу (к тому же её не сложно представить в электронном виде иначе как графикой) .

И в целом, первое правило более универсальное, оно подходит ко всем системам, выучите его и забудьте все прочие, чему бы там не учили в школе.

Последняя цифра двоичного числа будет нулем, если число четное и единицей, если число нечетное.

При делении целого числа нацело на 2 в остатке может быть либо 0 (если делимое четно) либо 1 (если делимое нечетно) .

При целочисленном делении меньшего числа на большее результатом будет всегда 0, а в остатке — делимое, т. е. исходное число, например: 1/2 = 0 а в остатке получим 1. Проверим 0*2+1=1 (получили 1, т. е. делимое) .

Проверить полученные значения можно с стандартного калькулятора в любой операционной системе. Системы счисления в калькуляторе обозначаются сокращенно: дес — десятичная, бин — двоичная, ост — восьмеричная, хекс — шестнадцатеричная.

Электронное устройство, осуществляющее подобный перевод, называется шифратором.
4,8(83 оценок)
Открыть все ответы
Ответ:
Vvaalleerriiaa
Vvaalleerriiaa
21.04.2023
#include <iostream>
#include <algorithm>
using std::cout;
using std::cin;

int main()
{
int sizeArr, input, min;
cout << "enter size arr: "; //размер массива
cin >> sizeArr;

int arr[sizeArr]; //сам массив
cout << "enter arr: ";
for(int i = 0; i < sizeArr; i++) //заполняем
{
cin >> input;
arr[i] = input;
if(i == 1)
{
min = input;
}
if(arr[i] < min)
{
min = arr[i];
}
}

int size = 0;
for(int i = 0; i < sizeArr; i++)
{
if(min == arr[i])
{
size++;
}
}

cout << std::endl << size;

return 0;
}
4,5(59 оценок)
Ответ:

#include <iostream>

#include <cstdlib>

#include <ctime>

#include <vector>

using namespace std;

int main()

{

int i, j, sum=0, n, m, p=1;

cout<<"Введите количество строк:"<<endl;

cin >> n;

cout<<"Введите количество столбцов:"<<endl;

cin >> m;

 int k=i, h=j;

int a[n][m];

int max = a[0][0];

cout<<"Исходный массив:"<<endl;

for (i=0; i<n;i++)

 {

   for (j=0;j<m;j++)

     {

         a[i][j]=-10 + rand()%20;

         cout<<a[i][j]<<" ";

     }

   cout<<endl;

 }

for (i = 0; i < n; i++)

{

 {

   for (j = 0; j < m; j++)

     {

      sum += a[i][j];    

     }

       cout<<"Сумма "<<i<<" строки равна: "<<sum<<endl;

       sum = 0;

  }

 }    

for (j = 0; j < m; j++)

{

 for (i = 0; i < n; i++)

   {

     p *= a[i][j];  

   }

      cout<<"Произведение "<<j<<" столбца равно: "<<p<<endl;

      p = 1;    

 }

for(k=0, h=0; k<n && h<m; k++, h++)

{

 if(a[k][h]>max)

   {

     max = a[k][h];

   }

}

 cout<<"Наибольшее число на главной диагонали: "<<max<<endl;

4,4(44 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ