Установка разряда в двоичном представлении целого.
Добавлено: 28 мар 2004, 13:39
Для двоичного пердставления целого нужно один правый ноль заменить на единицу без циклов. Например для числа 1010 0011 должно получиться 1010 0111.
форум программистов
https://www.developing.ru/
Код: Выделить всё
void ChangeInt(int & iInput)
{
int iMask = 0x1;
while(iInput & iMask == iInput)
{
iMask <<= 1;
}
iInput &= iMask;
}
Код: Выделить всё
void ChangeInt(int & iInput)
{
if (iInput & 0x1 != iInput)
{
iInput &= 0x1;
return;
}
if (iInput & 0x2 != iInput)
{
iInput &= 0x2;
return;
}
if (iInput & 0x4 != iInput)
{
iInput &= 0x4;
return;
}
if (iInput & 0x8 != iInput)
{
iInput &= 0x8;
return;
}
if (iInput & 0x10 != iInput)
{
iInput &= 0x10;
return;
}
if (iInput & 0x20 != iInput)
{
iInput &= 0x20;
return;
}
if (iInput & 0x40 != iInput)
{
iInput &= 0x40;
return;
}
/*
...
*/
if (iInput & 0x800 != iInput)
{
iInput &= 0x80;
return;
}
}
Точно!Раскрой оператор цикла и преврати его в линей код