-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProgram.cs
More file actions
81 lines (67 loc) · 1.59 KB
/
Program.cs
File metadata and controls
81 lines (67 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// 1. Ввод N
// int <- (string)
int ValueInput()
{
Console.Write("Введите число: ");
return Convert.ToInt32(Console.ReadLine());
}
// 2. Создание массива
// int[] <- (int)
int[] CreateArray(int Number)
{
int[] array = new int[Number];
return array;
}
// 3. Заполнение массива 0 и 1
// void <- (int[])
void FillArray(int[] binarNumber)
{
int count = binarNumber.Length;
for (int i = 0; i < count; i++)
{
binarNumber[i] = Random.Shared.Next(2);
}
binarNumber[0] = 1;
}
// 4. Печать массива
// string <- (int[])
string PrintArray(int[] Numbers)
{
string output = String.Empty;
int size = Numbers.Length;
for (int i = 0; i < size; i++)
{
output = output + $"{Numbers[i]}";
}
return output;
}
// 5. Конвертация из 2-ого в 10-ое
// int <- (int[]).
int BitToDecimal(int[] arrayBin)
{
int count = arrayBin.Length;
int exponent = arrayBin.Length - 1;
int result = 0;
for (int i = 0; i < arrayBin.Length; i++)
{
if (arrayBin[i] == 1)
{
result += Convert.ToInt32(Math.Pow(2, exponent));
}
exponent--;
}
return result;
}
// 6. 10110100 >> 180
// string <- (int[] , int)
string GoodPrint(int[] bin, int dec)
{
return $"{String.Join("", bin)} >> {dec}";
}
int Number = ValueInput();
int[] array = CreateArray(Number);
FillArray(array);
int result = Convert.ToInt32(BitToDecimal(array));
string binPrin = PrintArray(array);
Console.WriteLine(binPrin);
Console.WriteLine(GoodPrint(array, result));