1. Первая цифра отводится на знак (1 - это -, 0 - это +). Остальные 7 - число в двоичной системе счисления. Причём если число отрицательное, то исходное двоичное число инвертируется, и к нему прибавляется 1. а) 33 | 16 | 8 | 4 | 2 | 1 - в двоичной системе оно выглядит как 100001 1 | 0 | 0 | 0 | 0 | 1 Так как оно положительное, то в начале ставится 0. Так как чисел всего 6, а не 7, то после первого нуля следует поставить ещё один. ответ: 0'0100001 б) -63₁₀ = -111111₂ (переводить уже не буду подробно) Так как число отрицательное, то в начале ставим 1, так как цифр 6, то ставим после 1 0. 1'0111111 Инвертируем: 1'1000000 Прибавляем 1: 1'1000001 ответ: 1'1000001 в) -254₁₀ = -11111110 Так как цифр 8, то последнюю отбрасываем, а далее по алгоритму: 1'1111111 >> 1'0000000 >> 1'0000001 ответ: 1'0000001
Примечание: файл "file.txt" должен существовать в корневой папке программы. Если что-то не работает / работает не так, напишите об этом.
using System;
using System.IO;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
const int c = 'С';
string text;
using (FileStream file = new FileStream($"file.txt", FileMode.Open))
{
using (StreamReader reader = new StreamReader(file, System.Text.Encoding.Default))
{
text = reader.ReadToEnd();
}
}
string pattern = @"\w+";
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(pattern);
System.Text.RegularExpressions.MatchCollection mc = reg.Matches(text);
using (FileStream file2 = new FileStream($"file2.txt", FileMode.OpenOrCreate))
{
using (StreamWriter writer = new StreamWriter(file2, System.Text.Encoding.UTF8))
{
foreach (var el in mc)
if ((el.ToString()[0] == c) || (el.ToString())[0] == Char.ToLower((char)c))
writer.WriteLine(el);
}
}
}
}
}