На языке C# написать программу, в которой
Пользователь задает значение байта в десятичном формате. Если пользователь ввел
число больше 255, взять его по модулю 256. Если введенное значение некорректно
принять его равным 100.
Вывести на экран введенное пользователем значение в десятичном и бинарном виде.
В бинарном виде число обязательно должно иметь 8 разрядов. Если в двоичной
форме числа меньше восьми разрядов, то нужно добавить необходимое количество
нулей слева.
Выделить последний бит и бит, номер которого задаст пользователь красным цветом.
Произвести циклический сдвиг битов вправо на 2 в байте, при этом выделенные биты
оставить на месте.
Вывести на экран полученный байт в бинарном и десятичном виде, при этом в
бинарном виде выделить красным неподвижные биты.
Сложить полученный и исходный байты. Вывести результат в бинарном и десятичном
виде. В бинарном числе разделить байты пробелом, если результат занимает больше
одного байта.
Помогите пожалуйста. Если есть рабочий пример кода - буду рад. Просто я чет вообще не понимаю, что я тут должен сделать.
Другие языки программирования и технологии
C# программа с байтами, массивами и циклами
class Program
{
static void ColorPrint(string s, int[] ColorIndexes)
{
for (int i=0; i<s.Length; i++)
{
if (ColorIndexes.Contains(s.Length - i -1))
Console.ForegroundColor = ConsoleColor.Red;
else
Console.ResetColor();
Console.Write(s[i]);
}
Console.WriteLine();
}
static void SetBit(ref int a, int n)
{
a |= 1 << n;
}
static void ResetBit(ref int a, int n)
{
a &= ~(1 << n);
}
static bool GetBit(int a, int n)
{
return ((a >> n) & 1) == 1;
}
static void SetRsetBit(ref int a, int n, bool v)
{
if (v)
SetBit(ref a, n);
else
ResetBit(ref a, n);
}
static string ToOctet(int a)
{
return Convert.ToString(a, 2).PadLeft(8, '0');
}
static void Main(string[] args)
{
Console.Write("Enter a number between 0 and 255: ");
int b;
if (!int.TryParse(Console.ReadLine(), out b))
b = 100;
b %= 256;
string sb = ToOctet(b);
Console.WriteLine("{0}(10)={1}(2)", b, sb);
Console.Write("Enter bit #: ");
int bn = int.Parse(Console.ReadLine()) % 8;
ColorPrint(sb, new int[] { 7, bn });
int Shifted = b >> 2;
SetRsetBit(ref Shifted, 7, GetBit(b, 7));
SetRsetBit(ref Shifted, bn, GetBit(b, bn));
Console.Write("{0}=", Shifted);
ColorPrint(ToOctet(Shifted), new int[] { 7, bn });
int r = b + Shifted;
string rs = ToOctet(r);
if (rs.Length > 8)
rs = "0000000" + rs.Insert(1, " ");
Console.WriteLine("{0}(10)={1}(2)", r, rs);
Console.ReadKey();
}
}
{
static void ColorPrint(string s, int[] ColorIndexes)
{
for (int i=0; i<s.Length; i++)
{
if (ColorIndexes.Contains(s.Length - i -1))
Console.ForegroundColor = ConsoleColor.Red;
else
Console.ResetColor();
Console.Write(s[i]);
}
Console.WriteLine();
}
static void SetBit(ref int a, int n)
{
a |= 1 << n;
}
static void ResetBit(ref int a, int n)
{
a &= ~(1 << n);
}
static bool GetBit(int a, int n)
{
return ((a >> n) & 1) == 1;
}
static void SetRsetBit(ref int a, int n, bool v)
{
if (v)
SetBit(ref a, n);
else
ResetBit(ref a, n);
}
static string ToOctet(int a)
{
return Convert.ToString(a, 2).PadLeft(8, '0');
}
static void Main(string[] args)
{
Console.Write("Enter a number between 0 and 255: ");
int b;
if (!int.TryParse(Console.ReadLine(), out b))
b = 100;
b %= 256;
string sb = ToOctet(b);
Console.WriteLine("{0}(10)={1}(2)", b, sb);
Console.Write("Enter bit #: ");
int bn = int.Parse(Console.ReadLine()) % 8;
ColorPrint(sb, new int[] { 7, bn });
int Shifted = b >> 2;
SetRsetBit(ref Shifted, 7, GetBit(b, 7));
SetRsetBit(ref Shifted, bn, GetBit(b, bn));
Console.Write("{0}=", Shifted);
ColorPrint(ToOctet(Shifted), new int[] { 7, bn });
int r = b + Shifted;
string rs = ToOctet(r);
if (rs.Length > 8)
rs = "0000000" + rs.Insert(1, " ");
Console.WriteLine("{0}(10)={1}(2)", r, rs);
Console.ReadKey();
}
}
Михаил Дудыкин
большое вам спасибо
Похожие вопросы
- 1. Написать программу, которая заполняет массив целых чисел размеров 20 элементов значениями роста учащихся (случайные ч
- Задача на C++ по одномерным (статическим) массивам, помогите сделать, пожалуйста, очень надо на завтра
- Помогите написать программу на С. Тема Составление программ с использованием массивов
- Помогите пожалуйста составить программу по теме массивы.
- C++. Работа со строковыми массивами.
- Разработка в среде TURBO PASCAL программы перестановки элементов массива.
- Помогите пожалуйста написать программу на c++. Упорядочить элементы одномерного массива по убыванию.
- Составить программы формирования двумерного массива
- Каким образом в c++ можно передать двумерный массив в фунцкию?
- Нужно написать программы в Паскале! Массивы! Срочно! Помогите!