Console. WriteLine("Числа 47 , 76 , 130 . Применяем оператор & . ");
var FirstResult = 47 & 76;
var SecondResult = 47 & 130;
var ThirdResult = 76 & 130;
if (FirstResult > SecondResult && FirstResult > ThirdResult)
{
Console. WriteLine("Результат оператора & больше всего между числами 47 и 76 . nПрименяем оператор | для них . ");
var amogus = 47 | 76;
Console. WriteLine($"Результат оператора | : {amogus}. ");
}
else if (SecondResult > FirstResult && SecondResult > ThirdResult)
{
Console. WriteLine("Результат оператора & больше всего между числами 47 и 130 . nПрименяем оператор | для них . ");
var amogus = 47 | 130;
Console. WriteLine($"Результат оператора | : {amogus}. ");
}
else
{
Console. WriteLine("Результат оператора & больше всего между числами 76 и 130 . nПрименяем оператор | для них . ");
var amogus = 76 | 130;
Console. WriteLine($"Результат оператора | : {amogus}. ");
}
Console. ReadLine();
Проверим, больше всего результат оператора между 47 и 76 :
47 в двоичной системе: 101111 .
76 в двоичной системе 1001100 .
Числа приведены к типу int значит в них 32 разряда в каждом числе , ОЧЕНЬ грубо говоря:
0000 0000 0000 0000 0000 0000 0010 1111
0000 0000 0000 0000 0000 0000 0100 1100
----------------------------------------------------------------------
0000 0000 0000 0000 0000 0000 0110 1111
Получили число: 01101111 в двоичной системе, переведем в десятичную: 111 . Всё норм.
Второе задание я не сделал, долго и муторно и я его неправильно немного написал и всё полетело из-за этого, может что поймешь и переделаешь, хотя не пытайся)
class Program
{
private int N;
private string AFirst, BSecond;
private int MethodToN
{
get
{
return N;
}
set
{
int. TryParse(AFirst, out int A);
int. TryParse(BSecond, out int B);
int[] NumbersN = new int[A];
value = 1; value += A; // чтобы не изменить A используем не инкремент, а такую форму записи.
int LengthOfAB = A. ToString(). Length;
var b = B - A;
for(int i = 0; i < b; i++)
{
int. TryParse(A. ToString(). Substring(0, 1), out int First);
int. TryParse(A. ToString(). Substring(1, LengthOfAB - 1), out int Second);
int Test = First + Second;
if(value == Test)
{
NumbersN[i] = A;
Console. WriteLine($"Это число N-трансформируемое: {A}. ");
}
}
for (int i = 0; i < b; i++)
{
int. TryParse(A. ToString(). Substring(0, 2), out int First);
int. TryParse(A. ToString(). Substring(2, LengthOfAB), out int Second);
int Test = First + Second;
if (value == Test)
{
NumbersN[i] = A;
Console. WriteLine($"Это число N-трансформируемое: {A}. ");
}
}
for (int i = 0; i < b; i++)
{
int. TryParse(A. ToString(). Substring(0, 3), out int First);
int. TryParse(A. ToString(). Substring(3, LengthOfAB), out int Second);
int Test = First + Second;
if (value == Test)
{
NumbersN[i] = A;
Console. WriteLine($"Это число N-трансформируемое: {A}. ");
}
}
for (int i = 0; i < b; i++)
{
int. TryParse(A. ToString(). Substring(0, 4), out int First);
int. TryParse(A. ToString(). Substring(4, LengthOfAB), out int Second);
int Test = First + Second;
if (value == Test)
{
NumbersN[i] = A;
Console. WriteLine($"Это число N-трансформируемое: {A}. ");
}
}
N = value;
foreach(int abc in NumbersN)
{
Console. WriteLine(abc);
}
}
}
static void Main(string[] args)
{
var Amogus = new Program();
var Abobus = new Program();
NewLoop:
Console. WriteLine("Введите число A ( начальное число диапазона ) . ");
Amogus. AFirst = Console. ReadLine();
Console. WriteLine("Введите число B ( конечное число диапазона ) . ");
Abobus. BSecond = Console. ReadLine();
if (int. TryParse(Amogus. AFirst, out int A) && int. TryParse(Abobus. BSecond, out int B) &&
A < B && A < 9999999 && B <= 9999999)
{
// просто попытка запарсить.
}
else
{
Console. WriteLine("Введите нормальные значения. ");
Console. ReadLine();
goto NewLoop;
}
Amogus. MethodToN = A;
Console. WriteLine(Amogus. MethodToN);
Console. ReadLine();