Форум программистов, компьютерный форум CyberForum.ru

Помгите пожалуйста разобраться с программой, на бинарные операции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ massiv http://www.cyberforum.ru/cpp-beginners/thread370640.html
Помогите написать программу по двумерному массиву. A B integer Сравнить матрицы поэлементно и вывести на печать одинаковые элементы.
C++ Игра города Широко известна игра "Города". Называется какой-нибудь город, допустим, "Саратов". Кончается на "в", значит требуется назвать другой город, у которого в названии первая буква "в". Это может быть "Воронеж". Следующий город должен начинаться на "ж" и т.д. Запрещено повторять название городов. Надо написать программу, которая из набора названий городов (все названия разные) строит цепочку... http://www.cyberforum.ru/cpp-beginners/thread370639.html
Создать класс Time для работы со временем C++
Создать класс Time для работы со временем в формате "час. минута.секунда" . Класс должен включать в себя не менее четырёх функций инициализации числами, строкой (например 23:59:59), секундами и временем. Обязательными операциями являются вычисление разницы между двумя моментами времени в секундах, сложение времени из заданного количества секунд, вычитание времени из заданного количества секунд,...
C++ задача на арифметику
Задано уравнение: a*x+b*y=c, где a,b,c,x,y - целые неотрицательные числа. Заданы коэффициенты a,b,c. Требуется определить x,y. Формат входного файла: a b c Формат файла результата:
C++ заменить комментарии нечетной строки комментариями четной. http://www.cyberforum.ru/cpp-beginners/thread370629.html
Помогите пожалуйсто написать такую программу : В программе на ассемблере заменить комментарии нечетной строки комментариями четной. Исходный текст должен содержаться в одном файле, результат — во втором файле. Заранее огромное спасибо! Добавлено через 22 часа 4 минуты !!!!!
C++ Класс для работы со стеком Создать класс для работы со стеком. Элемент стека – символ. Использовать стек для проверки правильности расстановки скобок трех типов (круглых, квадратных и фигурных) в выражении. Ребята, помогите пожалуйста! Я вообще не представляю,что с этим делать!Помогите, пожалуйста.Спасибо всем, кто хоть как то поможет Добавлено через 2 часа 27 минут вот есть программа на паскале....а как переделать... подробнее

Показать сообщение отдельно
Ирина123
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 28
22.10.2011, 15:42     Помгите пожалуйста разобраться с программой, на бинарные операции
Задача звучит таким образом: найти корень числа, введенного пользователем, используя ТОЛЬКО побитовые оперции. По алгоритму:
например, введенно число 25, тогда программа должна вычилять корень так:
25
- 1
24
- 3
21
- 5
16
- 7
9
- 9
0

1-е целое нечетное число;

то есть вычитать из числа каждый раз числа от 1 и далее все нечетные числа по порядку, пока не будет нуль. А корень будет равен 5, то есть количеству вычтенных чисел из числа 25, как в примере. Вот код, помогите пожалуйста разобраться какой цикл для чего работает, и с построчными комментариями..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <stdlib.h>
using namespace std;
int Binary(int);
int N,i,j=0;
int BinarySum(int, int);
int x,y,h=0;
void main()
{
int X,G=0,A=0,b=-1;
 
cout<<"Input number X:";
cin>>X;
N=15;
do
{
b++;
j=2*b+1;
cout<<j<<" ";
for (i=0; i<=N; i++)
{
x=(Binary(j)^1);
y=Binary(1);
if (BinarySum(x,y)) G=G|32768; else G=G|0;
if (i<N) G>>=1;
}
cout<<"\n";
for (i=0; i<=N; i++)
{
x=Binary(G);
y=Binary(X);
if (BinarySum(x,y)) A=A|32768; else A=A|0;
if (i<N) A>>=1;
}
for (i=0; i<=N; i++)
{
x=Binary(A);
cout<<x;
}
cout<<"\n";
X=A;
cout<<"\n";
A=0;
G=0;
h=0;
} while (X-(2*(b+1)+1)>=0);
 
if (X!=0) cout<<"Kornya net"; else cout<<"\n"<<"Kvadratn koren:"<<b+1;
system("pause");
}
 
int Binary(int A)
{
int k;
k=((A>>i)&1);
return k;
}
int BinarySum(int x, int y)
{
int s;
s=((x^y)^h);
if ((x)&&(y)) h=1;
if ((!x) && (!y)) h=0;
return s;
 
}
Особенно вот такие моменты как "G=G|32768; else G=G|0;
", непонятны
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru