Господи боже ты мой, какой страшный код!

Данная информация предоставляется на условиях «КАК ЕСТЬ», без предоставления каких-либо гарантий и прав. Используя данную информацию, вы соглашаетесь с тем, что (i) Майкрософт не несет ответственности за использование вами данной информации и (ii) вы принимаете на себя весь риск, связанный с использованием данной информации.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Как конвертировать byte в bit
Здравствуйте, Fenor_Elf_of_Net, Вы писали:
F_E>Как конвертировать byte в bit
А что такое bit? Может быть, BitArray?
Если последнее, то, например, так:
using System;
using System.Collections;
public class SamplesBitArray
{
public static void Main()
{
byte y = 8;
byte[] myBytes = new byte[1] { y };
BitArray myBA3 = new BitArray( myBytes );
Console.WriteLine( "myBA3" );
Console.WriteLine( "\tCount: {0}", myBA3.Count );
Console.WriteLine( "\tLength: {0}", myBA3.Length );
Console.WriteLine( "\tValues:" );
PrintValues( myBA3, 8 );
Console.ReadLine();
}
public static void PrintValues( IEnumerable myList, int myWidth )
{
System.Collections.IEnumerator myEnumerator = myList.GetEnumerator();
int i = myWidth;
while ( myEnumerator.MoveNext() )
{
if ( i <= 0 )
{
i = myWidth;
Console.WriteLine();
}
i--;
Console.Write( "\t{0}", myEnumerator.Current );
}
Console.WriteLine();
}
}
А не поясните ли, что такое
bit?
Если вы имели в виду "как получить значения отдельных битов байта", то почитатйте
здесь.
Данная информация предоставляется на условиях «КАК ЕСТЬ», без предоставления каких-либо гарантий и прав. Используя данную информацию, вы соглашаетесь с тем, что (i) Майкрософт не несет ответственности за использование вами данной информации и (ii) вы принимаете на себя весь риск, связанный с использованием данной информации.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, Аноним, Вы писали:
А>Господи боже ты мой, какой страшный код! [img]
Не знаю, что ты тут увидел страшного, но вообще-то код был взят из MSDN (см.
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003APR.1033/cpref/html/frlrfsystemcollectionsbitarrayclasstopic.htm)
В MSDN тоже много ошибок и неточностей, поскольку его тоже пишут люди. Не стоит полагаться как на истину в последней инстанции, надо и свою голову на плечах иметь.
А страшность — во-первых, в явном использовании IEnumerator. Вообще-то в C# для этого есть конструкция "foreach":
public static void PrintValues( IEnumerable myList, int myWidth )
{
int i = myWidth;
foreach( bool current in myList )
{
if ( i-- <= 0 )
{
i = myWidth;
Console.WriteLine();
}
Console.Write( "\t{0}", сurrent );
}
Console.WriteLine();
}
Во-вторых, в инициализации самого массива тремя строками вместо одной:
BitArray myBA3 = new BitArray( new byte[] { 8 } );
Ну и вообще, для иллюстрации разбираемого вопроса не нужно столько наворотов. Сравните ваш код с кодом
здесь, и вам сразу станет ясно, почему он страшный

Данная информация предоставляется на условиях «КАК ЕСТЬ», без предоставления каких-либо гарантий и прав. Используя данную информацию, вы соглашаетесь с тем, что (i) Майкрософт не несет ответственности за использование вами данной информации и (ii) вы принимаете на себя весь риск, связанный с использованием данной информации.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
>Господи боже ты мой, какой страшный код!
злой Вы, Фёдор

Автор благодарит русский алфавит за предоставленные буквы.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение