28.02.2007, 18:49
общий
это ответ
Здравствуйте, Tatarin!
int b=10010101 - это десятичная запись, поэтому битовое представление b будет уже другим(00000000100110001011110111110101). Точно так же обстоят дела и с char mass[]="10010101".Только битовая версия строки будет совокупностью байт, соответствцющих ASCII-кодам символов ‘0‘ и ‘1‘, которые соответственно равны десятичным цифрам 48 и 49. Если у вас есть реальная битовая строка, которая в последствии не будет меняться, то быстрее всего будет разбить эту последовательность на блоки, размерностью по 64,32,16 или 8 бит, забить эти блоки в калькулятор, перевести их в десятичное представление, и уже манипулировать в программе десятичными числами.
Размер блока - выбирайте на свое усмотрение, но ТИП, используемый для хранения соответвтвующих десятичных чисел должен соответствовать следующим отношениям:
Для 64 битных блоков, используйте целочисленный тип __int64 или LONGLONG
Для 32 битных блоков, используйте целочисленный тип DWORD или ULONG
Для 16 битных блоков, используйте целочисленный тип WORD
Для 8 битных блоков, используйте целочисленный тип BYTE
BYTE - это тот же char, только без знака, т.е. unsigned char
Метод, который я привел предыдущим сообщением как раз и выставляет заданный бит в байте.