Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> число преобразовать в биты и обратно 
:(
    Опции темы
Smasher
Дата 11.4.2010, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 22.3.2009
Где: Odessa, Ukraine

Репутация: нет
Всего: нет



здравсьвуйте перекопав форум нашёл только алгоритмы для перегонки байта в биты и назад. суть в пороса такова, что мне надо интовое число перегнать в биты не с помощью например того же bitArray в которым создадутся сразу все 32 бита целого числа, а только минимальное представление данного числа битами т.е. 256 в 100000000 в виде строки и обратно, есть строка битов и получить число. даже в том же нете толком не смог найти для целых чисел как надо, а сам не могу реализовать. помогите пожалуйста, очень надо.

заранее благодарен
PM MAIL WWW ICQ   Вверх
mrbrooks
Дата 12.4.2010, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 7
Всего: 306



Код

short val = 256;
string bit = Convert.ToString(val,2);
val = Convert.ToInt16(bit,2);

PM MAIL   Вверх
Smasher
Дата 13.4.2010, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 22.3.2009
Где: Odessa, Ukraine

Репутация: нет
Всего: нет



Цитата(mrbrooks @ 12.4.2010,  07:48)
Код

short val = 256;
string bit = Convert.ToString(val,2);
val = Convert.ToInt16(bit,2);

спасибо большое очень класно, а как этот код по эффективности?

вот как я работаю с байтами, может это эффективней и можно под инт переделать?

Код

public static string Byte2Bits(byte num)
        {
            string result = string.Empty;
            for (int i = sizeof(byte) * 8 - 1; i >= 0; i--)
            {
                if ((num & (1 << i)) != 0)
                    result += '1';
                else
                    result += '0';
            }
            return result;
        }

        public static byte Bits2Byte(string bits)
        {
            BitArray ba = new BitArray(new bool[] { bits[7] == '1', bits[6] == '1', bits[5] == '1', bits[4] == '1', bits[3] == '1', bits[2] == '1', bits[1] == '1', bits[0] == '1' });
            byte result = 0;
            for (byte index = 0, m = 1; index < 8; index++, m *= 2)
                result += ba.Get(index) ? m : (byte)0;
            return result;
        }


Это сообщение отредактировал(а) Smasher - 13.4.2010, 09:48
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0437 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.