#include <bitset>
#include <iostream>
using namespace std;
unsigned char pow(unsigned char z)
{ unsigned char i=z;
for(z=1;i;i--) z*=2;
return z;
}
unsigned char changebit(unsigned char b,unsigned char p)
{
unsigned char t=b/pow(p);
return b+(1-(t-t/2*2)*2)*pow(p);
}
int main()
{
unsigned char b,p;
for(b=0;b-0xFF;b++,cout << endl)
for(p=0;p-8;p++) cout << unsigned(p) << ": " << bitset<8>(b) << " => " << bitset<8>(changebit(b,p)) << endl;
for(p=0;p-8;p++) cout << unsigned(p) << ": " << bitset<8>(b) << " => " << bitset<8>(changebit(b,p)) << endl;
return 0;
}
Другие языки программирования и технологии
Подскажите, как изменить бит в байте на С++?
Битовыми операциями: & | ^ ~
Макс Макс
не подойдет к сожалению...
unsigned char b;
//установить:
b |=3 /*здесь число для маски, пример: 4 - установит 3й бит в единицу (считая от единицы) */;
//сбросить:
b &=!3/*здесь число для маски, пример: 4 -сбросит 3й бит в единицу (считая от единицы) */;
//установить:
b |=3 /*здесь число для маски, пример: 4 - установит 3й бит в единицу (считая от единицы) */;
//сбросить:
b &=!3/*здесь число для маски, пример: 4 -сбросит 3й бит в единицу (считая от единицы) */;
Чё ? Имеется ввиду в типе "byte" ?
Азамат Онгарбаев
Нет в C++ типа byte...
Пусть исходный байт такой
-----------7 6 5 4 3 2 1 0
Byte t = 1 0 0 1 0 1 1 1
И тебе требуется установить 3 бит (0 -> 1, 1 -> 1)
Делается это с помощью логической операции ИЛИ (&)
Делаешь (t & 2^3)
А для того, чтобы сбросить байт в ноль (0 -> 0, 1 -> 0)
Можно сначала установить его, потом выполнить XOR
(t & 2^3) XOR 2^3, этот способ можно упростить, но мне лень xD
-----------7 6 5 4 3 2 1 0
Byte t = 1 0 0 1 0 1 1 1
И тебе требуется установить 3 бит (0 -> 1, 1 -> 1)
Делается это с помощью логической операции ИЛИ (&)
Делаешь (t & 2^3)
А для того, чтобы сбросить байт в ноль (0 -> 0, 1 -> 0)
Можно сначала установить его, потом выполнить XOR
(t & 2^3) XOR 2^3, этот способ можно упростить, но мне лень xD
Похожие вопросы
- Биты и байты
- Заменить бит в байте. Ассемблер
- можете объянить пожалуйста, чо такое бит и байт только ну очень просто?
- Помогите расположить в порядке убывания. 1024 бита, 1000 байтов, 1 бит, 1 байт, 1 Кбайт
- Как в бинарном файле определяются группы битов в байты? (внутри)
- Почему данные делятся на биты или байты? И почему нельзя взять за основу что-нибудь одно?
- Люди, пожалуйста про биты и байты)))
- Господа подскажите как изменить размер фото для аватарки? Помогите пожалуйста!
- здравствуйте не могли бы вы мне подсказать что изменить на сайте. Заранее спасибо
- Знатоки! Прошу подсказать как изменить цвет фона вокруг светлого поля при создании файла Paint