Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2011, 15:57   #1
Tinny
 
Регистрация: 28.06.2011
Сообщений: 7
По умолчанию Ошибки при компиляции

Занимаюсь по книге "C++ для чайников".

Написал следующую программу по этой же книге:

//BitTest - инициируются две переменные и
// выводятся результаты выполнения
// операторов ~, &,| и ^

Код:
#include <cstdio>
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int nArg, char* pszArgs[])
{
   // установка вывода в шестнадцатеричном виде
   cout.setf(ios::hex, ios::hex);
   //инициализация двух аргументов 
   int nArg1 = 0x1234;
   int nArg2 = 0x00ff;
   
   // Выполнение логических операций
    cout << "Arg1         = 0x" << nArg1 << "\n";
    cout << "Arg2         = 0x" << nArg2 << "\n";
    cout << "~nArg1       = 0x" << ~nArg1 << "\n";
    cout << "~nArg2       = 0x" << ~nArg2 << "\n";
    
    // Бинарные операторы
    cout << "nArg1 & nArg2 = 0x"
         << (nArg1 & nArg2)
         << "\n";
    cout << "nArg1 | nArg2 = 0x"
         << (nArg1 | nArg2)
         << "\n";   
    cout << "nArg1 ^ nArg2 = 0x"
         << (nArg1 ^ nArg2)
         << "\n";   
     
   
     system("PAUSE");
     return 0;
}

К сожалению, после компиляции программа выводит на экран совершенно посторонние значения.
Должно было выводиться:
Цитата:
Arg1 = 0x1234
Arg2 = 0xff
~nArg1 = 0xffffedcb
~nArg1 = 0xffffff00
nArg1 & nArg2 = 0x34
nArg1 | nArg2 = 0x12ff
nArg1 ^ nArg2 = 0x12cb
а вместо этого программа выводит:
Цитата:
Arg1 = 0x4660
Arg2 = 0x255
~nArg1 = 0x4294962635
~nArg1 = 0x4294967040
nArg1 & nArg2 = 0x52
nArg1 | nArg2 = 0x4863
nArg1 ^ nArg2 = 0x4811
ОС Win7
Может ли это быть связанно с потоками вывода?
Подскажите в чем может быть загвоздка.
С уважением,
Tinny

Последний раз редактировалось pproger; 28.06.2011 в 16:30.
Tinny вне форума Ответить с цитированием
Старый 28.06.2011, 16:13   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Код:
int main()
{
    // установка вывода в шестнадцатеричном виде
    cout.setf(ios::hex, ios::basefield);
    cout.setf(ios::showbase);
    //инициализация двух аргументов 
    int nArg1 = 0x1234;
    int nArg2 = 0x00ff;

    // Выполнение логических операций
    cout << "Arg1 = " << nArg1 << "\n";
    cout << "Arg2 = " << nArg2 << "\n";
    cout << "~nArg1 = " << ~nArg1 << "\n";
    cout << "~nArg2 = " << ~nArg2 << "\n";

    // Бинарные операторы
    cout << "nArg1 & nArg2 = " << (nArg1 & nArg2) << "\n"; 
    cout << "nArg1 | nArg2 = " << (nArg1 | nArg2) << "\n"; 
    cout << "nArg1 ^ nArg2 = " << (nArg1 ^ nArg2) << "\n"; 


    return 0;
}
Так должно быть.
Всё врут календари (с) -)
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 28.06.2011, 16:27   #3
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2Mandrivnyk
Цитата:
Всё врут календари (с) -)
птвп штоле?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 28.06.2011, 17:15   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
2Mandrivnyk


птвп штоле?
что есть "птвп"?
Последние танки в Париже?

В любом случае -- это АСГ -)
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 29.06.2011, 10:14   #5
Tinny
 
Регистрация: 28.06.2011
Сообщений: 7
По умолчанию

То есть проблема заключалась именно в установке вывода в шестнадцатеричном виде?
Tinny вне форума Ответить с цитированием
Старый 29.06.2011, 11:00   #6
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Сообщение от Tinny Посмотреть сообщение
То есть проблема заключалась именно в установке вывода в шестнадцатеричном виде?
Ага. Переведи полученные тобой результаты (без "0x", разумеется) в hex-формат. Получишь именно то, что надо.
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 30.06.2011, 10:00   #7
Tinny
 
Регистрация: 28.06.2011
Сообщений: 7
По умолчанию

Спасибо болшое!
Tinny вне форума Ответить с цитированием
Старый 30.06.2011, 10:00   #8
Tinny
 
Регистрация: 28.06.2011
Сообщений: 7
По умолчанию

Спасибо большое!
Tinny вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Синтаксические ошибки при компиляции Ker_33rus Visual C++ 2 07.11.2011 13:24
EXE MASM,ошибки при компиляции laim Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 01.04.2011 20:03
Ошибки при компиляции vader2 Общие вопросы Delphi 11 29.09.2010 16:33
DLL MASM, ошибки при компиляции Пепел Феникса Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 12.03.2010 00:06
ошибки при компиляции |{ot Общие вопросы Delphi 14 02.08.2008 01:20