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

в чем ошибка? - C++

Восстановить пароль Регистрация
 
фыдфт
1 / 1 / 0
Регистрация: 22.07.2013
Сообщений: 24
24.07.2013, 21:29     в чем ошибка? #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <windows.h>
using namespace std;
 
int main()
{
    cout <<"20 & 50 = "<<(20&50)<<endl;
    cout <<"10 ^ 30 = "<<(10^30)<<endl;
    cout <<"60 | 25 = "<<(60|25)<<endl;
    system ("pause");
    return 0;
}
20 & 50 = 16 почему?
10 ^ 30 = 20 почему?
60 | 25 = 61 почему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2013, 21:29     в чем ошибка?
Посмотрите здесь:

в чем ошибка ?(( C++
C++ В чем ошибка.
в чем ошибка? C++
В чем ошибка? C++
В чем ошибка? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
24.07.2013, 21:33     в чем ошибка? #2
Цитата Сообщение от фыдфт Посмотреть сообщение
20 & 50 = 16 почему?
10 ^ 30 = 20 почему?
60 | 25 = 61 почему?
в двоичное переведи и узнаешь почему
(20) 10100 & (50)110010 =10000 (16)
все эти операции работают с битами
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
24.07.2013, 21:36     в чем ошибка? #3
Цитата Сообщение от фыдфт Посмотреть сообщение
в чем ошибка?
а в чем суть задачи? многие тут любят с битами работать и могут подсказать, если что.
фыдфт
1 / 1 / 0
Регистрация: 22.07.2013
Сообщений: 24
24.07.2013, 21:39  [ТС]     в чем ошибка? #4
как в двоичное перевести
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
24.07.2013, 21:47     в чем ошибка? #5
Цитата Сообщение от фыдфт Посмотреть сообщение
как в двоичное перевести
так в компьютере уже все в двоичном виде. а если вывести, то так можно

C++
1
2
3
4
5
6
7
8
void Print(unsigned a)
{
   if(a)
   {
      Print(a >> 1);
      std::cout << (a & 1);
   }
}
фыдфт
1 / 1 / 0
Регистрация: 22.07.2013
Сообщений: 24
24.07.2013, 21:48  [ТС]     в чем ошибка? #6
Цитата Сообщение от Thinker Посмотреть сообщение
так в компьютере уже все в двоичном виде. а если вывести, то так можно

C++
1
2
3
4
5
6
7
8
void Print(unsigned a)
{
   if(a)
   {
      Print(a >> 1);
      std::cout << (a & 1);
   }
}
это с++?
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
24.07.2013, 21:50     в чем ошибка? #7
Цитата Сообщение от фыдфт Посмотреть сообщение
это с++?
да, а что вас удивляет?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
void Print(unsigned a)
{
   if(a)
   {
      Print(a >> 1);
      std::cout << (a & 1);
   }
}
 
int main()
{
   Print(123);
   return 0;
}
Croessmah
24.07.2013, 21:54
  #8

Не по теме:

Цитата Сообщение от Thinker Посмотреть сообщение
да, а что вас удивляет?
а если Print ( 0 )?

Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
24.07.2013, 21:57     в чем ошибка? #9
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:


а если Print ( 0 )?

ну вы же видели сразу, что только для положительных, поэтому рекурсия удобная. лишние циклы и параметры не хочется писать, а так красиво.

можно нулевой бит добавлять, тогда и 0 учтется, но не то это уже

C++
1
2
3
4
5
6
7
8
9
void Print(unsigned a)
{
   if(a)
   {
      Print(a >> 1);
      std::cout << (a & 1);
   }
   else std::cout << 0;
}
фыдфт
1 / 1 / 0
Регистрация: 22.07.2013
Сообщений: 24
24.07.2013, 22:00  [ТС]     в чем ошибка? #10
Цитата Сообщение от Thinker Посмотреть сообщение
да, а что вас удивляет?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
void Print(unsigned a)
{
   if(a)
   {
      Print(a >> 1);
      std::cout << (a & 1);
   }
}
 
int main()
{
   Print(123);
   return 0;
}
Print - я думал он в C
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
24.07.2013, 22:00     в чем ошибка? #11
Цитата Сообщение от фыдфт Посмотреть сообщение
Print - я думал он в C
это не простой Print(), а особый В Си printf(), fprintf(), sprintf()
фыдфт
1 / 1 / 0
Регистрация: 22.07.2013
Сообщений: 24
24.07.2013, 22:02  [ТС]     в чем ошибка? #12
Цитата Сообщение от Thinker Посмотреть сообщение
так в компьютере уже все в двоичном виде. а если вывести, то так можно

C++
1
2
3
4
5
6
7
8
void Print(unsigned a)
{
   if(a)
   {
      Print(a >> 1);
      std::cout << (a & 1);
   }
}
я имел ввиду как перевести цифру в двоичный
я не умею переводить цифры в двоичный(
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
24.07.2013, 22:04     в чем ошибка? #13
Цитата Сообщение от фыдфт Посмотреть сообщение
я имел ввиду как перевести цифру в двоичный
я не умею переводить цифры в двоичный(
наверное, вы хотели сказать "числа". Первый шаг к этому это разобраться с битовыми операциями &, |, ^, ~, >>, <<
фыдфт
1 / 1 / 0
Регистрация: 22.07.2013
Сообщений: 24
24.07.2013, 22:06  [ТС]     в чем ошибка? #14
Цитата Сообщение от Thinker Посмотреть сообщение
наверное, вы хотели сказать "числа". Первый шаг к этому это разобраться с битовыми операциями &, |, ^, ~, >>, <<
я имел ввиду числа а с битовыми операциями я знаком
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
24.07.2013, 22:09     в чем ошибка? #15
Цитата Сообщение от фыдфт Посмотреть сообщение
я имел ввиду числа а с битовыми операциями я знаком
судя по теме, как-то не чувствуется. научитесь просто выделять любой бит числа и группы бит для начала.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2013, 23:10     в чем ошибка?
Еще ссылки по теме:

C++ В чем ошибка?
ошибка в чем то C++
В чем ошибка C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
24.07.2013, 23:10     в чем ошибка? #16
Цитата Сообщение от фыдфт Посмотреть сообщение
я имел ввиду как перевести цифру в двоичный
я не умею переводить цифры в двоичный(
открой калькулятор в режиме программист и смотри десятичный, двоичный шестнадцатеричный форматы
а если хочешь сам то учится надо
есть куча методов
например метод деления
метод весовых коффициентов
вот например метод деления
http://numeration.ru/dectobin.html
Yandex
Объявления
24.07.2013, 23:10     в чем ошибка?
Ответ Создать тему
Опции темы

Текущее время: 21:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru