Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Побитовые операции

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Побитовые операции
Имя
Сообщение << Старые топики   Новые топики >>
Побитовые операции - 2005-05-15 16:49:06   
Koop[01]

Сообщений: 8
Оценки: 0
Присоединился: 2005-04-10 16:04:22
Привет всем!
У меня была, ну скажем так, как для начинаюшего простенькая задачка. Сделать чтобы пользователь вводил число а прога переводила его в двоичное. Я написал вроде работает:
#include <stdio.h>
int main(void)
{

int x, c, d[16], y;
while(1)
{
printf("Enter an integer or 0 to exit: ");
scanf("%d", &x);
if (x==0)
break;
printf("The dual number of %d ", x);
for(y=0; y<16;y++)
d[y]=0;
for(y=0; y<16;y++)
{
//z=x/2;
c=x%2;
x/=2;
if(c==0)
d[y]=c;
else
d[y]=1;

}

printf("is");
y=16;
while(y!=0)
{
y–;
printf("%d", d[y]);
}
printf("\n");
fflush(stdin);
}
system("PAUSE");
return 0;
}
Но я читал, что можно это сделать с помощью побитовых операций. Я почитал о них но всеровно пока недошло как. Может кто-то сможет помочь.
Заранее благодарен.
Post #: 1
Побитовые операции - 2005-05-16 00:48:09   
Yanis

Сообщений: 63
Оценки: 0
Присоединился: 2004-04-19 00:32:13
Конечно, можно и с помощью побитовых:

#include "iostream.h"

int main(void)
{
int n;
int digits;

while (n) {
cout << "Enter value (0 - quit): " ;
cin >> n;

if (!n) break;

do {
cout << "Enter digits count: " ;
cin >> digits;
} while(digits < 1);

cout << "Binary value: ";
for (int i = digits-1; i >= 0; i–)
{
if ((n & (1 << i)) != 0)
cout << '1';
else cout << '0';
} // for
cout << endl;
} // while(n)
};

Надеюсь написал понятно :)
Post #: 2
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Побитовые операции







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.