Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/32: Рейтинг темы: голосов - 32, средняя оценка - 4.88
5 / 5 / 0
Регистрация: 21.10.2012
Сообщений: 54

Как произвольный байт на входе преобразовать в биты

05.03.2013, 18:44. Показов 7033. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно, вопрос в заголовке )) Подскажите, пожалуйста! ))
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2013, 18:44
Ответы с готовыми решениями:

не получаеться преобразовать 8 ьит в 1 байт (биты в десятичное число)
вот код надо написать на с++ но решил на дельфи но он не работает что то как будто проскакивает последний разряд const _SIZE =...

Дан массив из 10 байт. Посчитать количество байт, в которых сброшены 6 и 4 биты
Дан массив из 10 байт. Посчитать количество байт,в которых сброшены 6 и 4 биты. Массив байтов размещается начиная с DS:0000h. Ответ должен...

Определение в массиве из 15 байт количества байт, в которых сброшены 6 и 4 биты
Помогите пожалуйста разработать программу на языке ассемблера, определяющую в массиве из 15 байт количество байт, в которых сброшены 6 и 4...

21
 Аватар для AlexAsche
78 / 78 / 15
Регистрация: 27.01.2013
Сообщений: 323
05.03.2013, 19:05
Пример преобразования. Вот тема, 7 пост
1
5 / 5 / 0
Регистрация: 21.10.2012
Сообщений: 54
05.03.2013, 19:17  [ТС]
Там же для числа. А у меня произвольный байт. Это может быть и число, и кусочек любого файла.
0
 Аватар для AlexAsche
78 / 78 / 15
Регистрация: 27.01.2013
Сообщений: 323
05.03.2013, 19:37
Или так

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 using System.Collections;
 
    public static void Test()
    {
            byte[] myBytes = new byte[5] { 1, 2, 3, 4, 5 };
            BitArray myBA3 = new BitArray( myBytes );
            PrintValues( myBA3, 8 );
    }
 
    public static void PrintValues( IEnumerable myList, int myWidth )  {
       int i = myWidth;
       foreach ( Object obj in myList ) {
          if ( i <= 0 )  {
             i = myWidth;
             Console.WriteLine();
          }
          i--;
          Console.Write( "{0,8}", obj );
       }
       Console.WriteLine();
    }
Добавлено через 3 минуты
Цитата Сообщение от Pirokar Посмотреть сообщение
произвольный байт
Ну вы же где-то его храните например в типе byte. Или хотите сразу указатель в память?
1
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
05.03.2013, 19:38
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  public static string byteTobits(byte b)
    {
        List<Char> bits = new List<char>();
        for (int t = byte.MaxValue / 2 + 1; t > 0; t = t / 2)
        {
            if ((b & t) != 0) bits.Add('1');
            if ((b & t) == 0) bits.Add('0');
        }
        return new string(bits.ToArray());
    }
    static void Main()
    {
        byte b = 55;
        Console.WriteLine(byteTobits(b));
 
        Console.ReadLine();
 
    }
1
5 / 5 / 0
Регистрация: 21.10.2012
Сообщений: 54
05.03.2013, 21:48  [ТС]
Спасибо огромнейшее! )))
0
5 / 5 / 0
Регистрация: 21.10.2012
Сообщений: 54
12.03.2013, 07:53  [ТС]
А как теперь получившийся массив битов скинуть в файл, не подскажете? :-)
А после прочитать из файла этот часть массива.
0
338 / 327 / 154
Регистрация: 29.10.2012
Сообщений: 949
12.03.2013, 08:34
Основываясь на коде который написал Vitall, запись и чтение из файла можно реализовать так:
C#
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
        static void Main(string[] args)
        {
            byte b = 55;
            string bits = byteTobits(b);
            Console.WriteLine(bits);
            //Запись в файл
            SaveToFile(bits, "bitsFile.txt");
            //Чтение из файла
            string bits1 = LoadFromFile("bitsFile.txt");
            Console.WriteLine(bits);
            Console.ReadKey();
        }
        private static string LoadFromFile(string fileName)
        {
            //Если предполагаем что в файле нужна только первая строчка, и она там есть
            return System.IO.File.ReadAllLines(fileName)[0];
        }
        private static void SaveToFile(string bits, string fileName)
        {
            FileInfo f = new FileInfo(fileName);
            StreamWriter w = f.CreateText();
            w.WriteLine(bits);
            w.Close();
        }
        public static string byteTobits(byte b)
        {
            List<Char> bits = new List<char>();
            for (int t = byte.MaxValue / 2 + 1; t > 0; t = t / 2)
            {
                if ((b & t) != 0) bits.Add('1');
                if ((b & t) == 0) bits.Add('0');
            }
            return new string(bits.ToArray());
        }
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.03.2013, 11:02
Цитата Сообщение от Vitall Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
  public static string byteTobits(byte b)
    {
        List<Char> bits = new List<char>();
        for (int t = byte.MaxValue / 2 + 1; t > 0; t = t / 2)
        {
            if ((b & t) != 0) bits.Add('1');
            if ((b & t) == 0) bits.Add('0');
        }
        return new string(bits.ToArray());
    }
Суровые у вас методы.

C#
1
2
3
4
public static string ByteToBits(byte b)
{
   return Convert.ToString(b, 2).PadLeft(8, '0');
}
1
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
12.03.2013, 11:16
kolorotur, Зато алгоритм видно а так все осталось за кулисами
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.03.2013, 11:48
Цитата Сообщение от Vitall Посмотреть сообщение
Зато алгоритм видно
Ну раз показываете алгоритм, то позвольте его немного "разобрать"

Цитата Сообщение от Vitall Посмотреть сообщение
C#
1
List<Char> bits = new List<char>();
Зачем создавать список (а это объект в куче), если в байте всегда 8 бит, то есть длина известна заранее?

Цитата Сообщение от Vitall Посмотреть сообщение
C#
1
for (int t = byte.MaxValue / 2 + 1; t > 0; t = t / 2)
Очень хитрый способ выделять один бит

Цитата Сообщение от Vitall Посмотреть сообщение
C#
1
2
if ((b & t) != 0) bits.Add('1'); 
if ((b & t) == 0) bits.Add('0');
Здесь классика: "программист перед сном ставит рядом два стакана воды: полный — если захочет пить и пустой — если не захочет".

Цитата Сообщение от Vitall Посмотреть сообщение
C#
1
return new string(bits.ToArray());
Здесь создается еще один объект в куче, помимо собственно строки.

Требование алгоритма к памяти в куче: 40 дополнительных байт для обработки одного.

Вот вариант, требующий всего 16 дополнительных байт в куче:
C#
1
2
3
4
5
6
7
public static string ByteToBits(byte b)
{
    char[] buffer = new char[8];
    for (int i = 0; i < buffer.Length; i++)
        buffer[i] = (1 << (7 - i) & b) == 0 ? '0' : '1';
    return new string(buffer);
}
А вот вариант, требующий 0 дополнительных байт в куче — вся работа выполняется в стеке:
C#
1
2
3
4
5
6
7
public static unsafe string ByteToBits(byte b)
{
    char* buffer = stackalloc char[9];
    for (int i = 0; i < 8; i++)
        buffer[i] = (1 << (7 - i) & b) == 0 ? '0' : '1';
    return new string(buffer);
}
3
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
12.03.2013, 11:56
kolorotur, За оптимизацию 5+
Косяки были и сам видел, так немножко изменил один примерчик из Шилдта
1
5 / 5 / 0
Регистрация: 21.10.2012
Сообщений: 54
12.03.2013, 15:07  [ТС]
Это все char, а как именно битовый массив bitarray скинуть? Чтобы он на диске не занимал больше места, чем ему положено и при этом там были именно биты?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.03.2013, 15:23
Цитата Сообщение от Pirokar Посмотреть сообщение
а как именно битовый массив bitarray скинуть?
C#
1
2
byte[] bytes = new byte[(int)Math.Ceiling(bitarray.Count / 8.0)];
bitarray.CopyTo(bytes, 0);
1
5 / 5 / 0
Регистрация: 21.10.2012
Сообщений: 54
14.03.2013, 14:36  [ТС]
Всем спасибо за ответы выше! Но у меня еще один вопрос есть по этой теме. Написал программу с вашей помощью(код ниже), которая парсит файл в биты на диск через буфер в 4096 бит (512 байт) и обратно. Однако Обратно парсится на 1кб меньше. Может я что-то где-то недочитываю/недоскидываю? По идее за полное чтение файла у мня отвечает метод ReadAllBitts, а за запись AllBytesToBits. Однако где-то чего-то не хватает... Помогите, пожалуйста!

Код программы
C#
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
using System;
using System.Collections.Generic;
using System.Collections;
using System.IO;
 
namespace ParseByte
{
    static class BitStream
    {
        static char[] bitbuffer = new char[4096]; //буфер
        static int cntWrite = 0; //счетчик на запись
 
        //Парсит байт в биты и записывает в буфер. Принимает байт и файловый поток
        static public void ByteToBit(byte[]masByte, BinaryWriter fs)
        {
            BitArray oneByte = new BitArray(masByte);
                foreach (bool bit in oneByte)
                {
                    if (bit && cntWrite < 4096) //если true
                    {
                        bitbuffer[cntWrite] = '1';
                        cntWrite++;
                    }
                    else if (!bit && cntWrite < 4096) //если false
                    {
                        bitbuffer[cntWrite] = '0';
                        cntWrite++;
                    }
                    else
                    {
                        fs.Write(bitbuffer, 0, bitbuffer.Length);
                        cntWrite = 0;
                        break;
                    }
                }
        }
 
        //Биты из файла в 512 байт
        static public void BitsTo512Byte(BinaryReader bread, FileStream fend)
        {
            char oneByte;
            int j = 0, check = 0, i;
            BitArray realBitBuffer = new BitArray(4096);
            BitArray tmp = new BitArray(8);
            byte[] bytes = new byte[512];
            
            for (i = 1; i < 4097; i++)
            {
                if ((check = bread.PeekChar()) != -1)
                {
                    oneByte = bread.ReadChar();
                    if (oneByte == '1')
                        realBitBuffer[i - 1] = true;
                    else if (oneByte == '0')
                        realBitBuffer[i - 1] = false;
                    else
                        Console.WriteLine("В байте неверное значение!");
                }
            }
            for (int k = 0; k < Math.Ceiling(realBitBuffer.Count/8.0); k++) //Делаем столько проходов, сколько раз у нас встречаются комбинации по 8 бит! Ceiling округляет до верхнего целого
              for (i = 0; i < 8 && j < realBitBuffer.Count; i++, j++)
              {
                  tmp[i] = realBitBuffer[j];
                  if (i == 7 || j == realBitBuffer.Count) // Пора сбрасывать биты в байт!
                      tmp.CopyTo(bytes, k); //парсим биты в байты, к - текущий индекс массива байтов bytes
              }
            BurnBytes(bytes, fend);
        }
 
        //Считываем весь файл с помощью BitsTo512Byte
        static public void ReadAllBits(BinaryReader bread, FileStream fend)
        {
            int i;
            while ((i = bread.PeekChar()) != -1)
                BitsTo512Byte(bread, fend);
        }
 
        //Записывает массив байтов на входе в файл
        static public void BurnBytes(byte[] bytes, FileStream fend)
        {
            foreach (byte b in bytes)
                fend.WriteByte(b);
        }
 
        //Все байты преобразовывает в биты через ByteToBit
        static public void AllBytesToBits(FileStream fs, BinaryWriter wout) //(откуда считывать, куда писать биты)
        {
            int bt;
            byte[] masByte = new byte[1];
            do
            {
                bt = fs.ReadByte();
                if (bt != -1)
                {
                    masByte[0] = (byte)bt;
                    ByteToBit(masByte, wout);
                }
            } while (bt != -1);
        }
    }
    
    class MainProgram
    {
        static void Main(string[] args)
        {
            string strChoise;
            int choise = 0;
            Console.WriteLine("Что вы желаете сделать: \n  1. Преобразовать файл в биты\n  2. Преобразовать биты в файл");
            Console.Write("Ваш выбор: ");
            strChoise = Console.ReadLine();
            choise = Int32.Parse(strChoise);
 
            switch (choise)
            {
                case 1:
                    try
                    {
                        Console.Write("Введите название файла, откуда считывать биты: ");
                        string strIn = Console.ReadLine();
                        FileStream fin = new FileStream(strIn, FileMode.Open);
                        Console.Write("Введите название файла, куда сохранять считанные биты: ");
                        string strOut = Console.ReadLine();
                        BinaryWriter fswrite = new BinaryWriter(new FileStream(strOut, FileMode.Create, FileAccess.Write));
                        BitStream.AllBytesToBits(fin, fswrite); //тут идет основная работа :)
                    }
                    catch (IOException exc)
                    {
                        Console.WriteLine("Ошибка работы с файлом:\n" + exc.Message);
                        Console.ReadKey();
                    }
                    break;
                case 2:
                    try
                    {
                        Console.Write("Введите название файла, откуда считывать биты: ");
                        string strIn = Console.ReadLine();
                        BinaryReader bread = new BinaryReader(new FileStream(strIn, FileMode.Open, FileAccess.Read));
                        Console.Write("Введите название и путь конечного файла: ");
                        string strOut = Console.ReadLine();
                        FileStream fend = new FileStream(strOut, FileMode.Create);
                        BitStream.ReadAllBits(bread, fend);
                    }
                    catch (IOException exc)
                    {
                        Console.WriteLine("Ошибка работы с файлом:\n" + exc.Message);
                        Console.ReadKey();
                    }
                    break;
 
            }
        }
    }
}
0
Заблокирован
14.03.2013, 16:22
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   //Массив байтов на входе
            Byte[] init = {1,200,3 };
            
            //Массив битов
            System.Collections.BitArray bitArray = new System.Collections.BitArray(init);
      
            //Создаем строку битов
         IEnumerable<object> obj=   bitArray.Cast<object>();
         String result1= new String(Array.ConvertAll<object,char>(obj.ToArray(),elem=>(elem.Equals((object)true))?'1':'0'));
            
            //Сохраняем строку битов
         System.IO.File.WriteAllText(System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "myFile.bit"),result1);
 
            //Читаем из файла строку битов
         char[] init2 = System.IO.File.ReadAllText(System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "myFile.bit")).ToCharArray();      
         System.Collections.BitArray bitArray2 = new System.Collections.BitArray(Array.ConvertAll<char, bool>(init2, bit => bit == '1' ? true : false));
1
5 / 5 / 0
Регистрация: 21.10.2012
Сообщений: 54
14.03.2013, 17:05  [ТС]
Ответ не очень понятен. Мне нельзя считывать сразу весь файл, только побуферно. И вопрос был в том, где я недочитываю.
0
Заблокирован
14.03.2013, 18:12
Цитата Сообщение от Pirokar Посмотреть сообщение
Ответ не очень понятен. Мне нельзя считывать сразу весь файл, только побуферно. И вопрос был в том, где я недочитываю.
C#
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
          //Ваш считывающий поток
            System.IO.BinaryReader reader= 
                new System.IO.BinaryReader(new System.IO.FileStream("pathToFile",  System.IO.FileMode.Open));
 
            //Читаем байт
            Byte readingByte=reader.ReadByte();
         
            //Получаем массив битов либо добавляем его к массиву уже считанных байтов
            System.Collections.BitArray bitArray = new System.Collections.BitArray(readingByte);
          //или, если байт один
            System.Collections.Specialized.BitVector32 bits = new System.Collections.Specialized.BitVector32(readingByte);
      
            //...
 
            //Создаем строку битов
         IEnumerable<object> obj=   bitArray.Cast<object>();
         String result1= new String(Array.ConvertAll<object,char>(obj.ToArray(),elem=>(elem.Equals((object)true))?'1':'0'));
        
            //...
            
            //Буферизируем строку с остальными
            System.Text.StringBuilder strb = new StringBuilder();//Создается один раз
            strb.Append(result1); //Общий массив всех считанных битов, для сохранения.
 
            //Тперь, либо читаем снова байт повторяем все сначала либо сохраняем сроку битов
 
            System.IO.File.WriteAllText(System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "myFile.bit"), result1);
1
5 / 5 / 0
Регистрация: 21.10.2012
Сообщений: 54
14.03.2013, 18:28  [ТС]
Спасибо, но не могли бы Вы помочь мне именно по моему коду? Я еще не такой прошаренный в шарпе и мне все равно не все у вас понятно )) А лабу делать надо (я ускоренник в вузе, у нас еще даже самого шарпа не было, я по книге читаю, а предмет третьего курса и требуют с классами). Я свой код писал несколько дней и он почти рабочий, только куда-то теряется последний килобайт...
0
Заблокирован
15.03.2013, 16:03
Цитата Сообщение от Pirokar Посмотреть сообщение
Спасибо, но не могли бы Вы помочь мне именно по моему коду? Я еще не такой прошаренный в шарпе и мне все равно не все у вас понятно )) А лабу делать надо (я ускоренник в вузе, у нас еще даже самого шарпа не было, я по книге читаю, а предмет третьего курса и требуют с классами). Я свой код писал несколько дней и он почти рабочий, только куда-то теряется последний килобайт...

Кликните здесь для просмотра всего текста
C#
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
using System;
using System.Collections.Generic;
using System.Collections;
using System.IO;
using System.Linq;
 
namespace ParseByte
{
    static class BitStream
    {
        //Парсит байт в биты и записывает в буфер. Принимает байт и файловый поток
        static public void WriteBytes(byte[] masByte, BinaryWriter fs)
        {
            BitArray oneByte = new BitArray(masByte);
            System.Collections.Generic.List<char> chars = new List<char>(masByte.Length * 8);
            char[] bits = new char[8];
            for (int i = 0; i < oneByte.Length; i++)
            {
                if (i % 8 == 0 && i != 0)
                {
                    chars.AddRange(bits.Reverse());
                };
                bits[i % 8] = (oneByte[i]) ? '1' : '0';
            };
            fs.Write(chars.ToArray());
            fs.Flush();
            fs.Dispose();
        }
 
        //Считываем весь файл
        static public void ReadAllBits(BinaryReader bread, StreamWriter writer)
        {
            char[] chars = new char[8];
            System.Collections.Generic.List<byte> bytes = new List<byte>();
            while (bread.PeekChar() != -1)
            {
                for (int i = 0; i < 8 && bread.PeekChar() != -1; i++)
                {
                    chars[i] = bread.ReadChar();
                };
                bytes.Add(Convert.ToByte(new String(chars), 2));
            };
            writer.Write(System.Text.Encoding.Default.GetString(bytes.ToArray()));
            writer.Flush();
            writer.Dispose();
        }
 
        //Все байты преобразовывает в биты через ByteToBit
        static public void AllBytesToBits(FileStream fs, BinaryWriter wout) //(откуда считывать, куда писать биты)
        {
            byte[] bytes = new byte[fs.Length];
            fs.Read(bytes, 0, bytes.Length);
            WriteBytes(bytes, wout);
        }
    }
 
    class MainProgram
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Что вы желаете сделать: \n  1. Преобразовать файл байтов в файл битов\n  2. Преобразовать файл битов в файл байтов");
            Console.Write("Ваш выбор: ");
            int result;
            if (Int32.TryParse(Console.ReadLine(), out result))
            {
                switch (result)
                {
                    case 1:
                        try
                        {
                            Console.Write("Введите название файла, откуда считывать байты: ");
                            string strIn = Console.ReadLine();
                            FileStream fin = new FileStream(strIn, FileMode.Open);
                            Console.Write("Введите название файла, куда сохранять файл битов: ");
                            string strOut = Console.ReadLine();
                            BinaryWriter fswrite = new BinaryWriter(new FileStream(strOut, FileMode.Create, FileAccess.Write));
                            BitStream.AllBytesToBits(fin, fswrite); //тут идет основная работа :)
                        }
                        catch (IOException exc)
                        {
                            Console.WriteLine("Ошибка работы с файлом:\n" + exc.Message);
                            Console.ReadKey();
                        }
                        break;
                    case 2:
                        try
                        {
                            Console.Write("Введите название файла, откуда считывать биты: ");
                            string strIn = Console.ReadLine();
                            BinaryReader bread = new BinaryReader(new FileStream(strIn, FileMode.Open, FileAccess.Read));
                            Console.Write("Введите название и путь конечного файла байтов: ");
                            string strOut = Console.ReadLine();
                            StreamWriter writer = new StreamWriter(new FileStream(strOut, FileMode.Create, FileAccess.Write));
                            BitStream.ReadAllBits(bread, writer);
                        }
                        catch (IOException exc)
                        {
                            Console.WriteLine("Ошибка работы с файлом:\n" + exc.Message);
                            Console.ReadKey();
                        }
                        break;
                    default:
                        System.Console.Write("Неправильный выбор");
                        break;
                }
            }
            else Console.WriteLine("Неправильный выбор");
        }
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.03.2013, 16:03
Помогаю со студенческими работами здесь

Объясните, как показываются биты, составляющие байт?
Здравствуйте, изучаю C# по Шилдту, дошёл до работы с битами. Более-менее понял как считаются числа в двоичной системе, понял как...

Как построить байт, если биты устанавливаются/сбрасываются через чекбоксы?
То есть как принять значиния от этих чекбоксов я уже сделал (они записываются в отдельные переменные для каждого чекбокса) у меня вопрос...

Разложить байт на биты
При работе с контроллером, получаю байтовую последовательность. Мне нужно выделить из массива 10 байт и разложить его побитно, ну и вывести...

Байт в биты в файле
Нашёл такую реализацию(вроде бы реализацию, я сам не знаю как она работает) превращения байта символа в биты. Но не могу понять, как собой...

Каждый байт в файле перевести в биты
Доброго дня Всем! Ребят, прошу помощи. ТЗ: Есть файл 1.dat в котором хранятся байты. 1) Прочитать весь файл побайтово. 2) Каждый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru