2012-03-07 6 views
-4

Я написал 2 программы, которые преобразуют HEX в DEC и DEC в BIN. Когда я тестирую их отдельно, они работают. Когда я размещаю их вместе, выдает правильный код DEC, но неправильный код BIN. Как я могу это исправить?HEX to BIN convert

HEX в DEC

#include <iostream> 

int main() 
{ 
int hex; 
std::cin >> std::hex >> hex; 
std::cout << hex << std::endl; 
system("pause"); 
return 0; 
} 

декабря в BIN

#include <iostream> 

using namespace std; 

int main() 
{ 

int Number; 
cin >> Number; 
bool Binary[sizeof(int) * CHAR_BIT]; 
for(unsigned int i = 0; i < sizeof(int) * CHAR_BIT; i++) 
Binary[(sizeof(int) * CHAR_BIT - 1) - i] = Number & (1 << i); 
for(unsigned int i = 0; i < sizeof(int) * CHAR_BIT; i++) 
    std::cout << Binary[i]; 
std::cout << endl; 

system ("pause"); 

return 0; 

} 

HEX в BIN

#include <iostream> 

int main() 
{ 
int hex = 0; 
int Number = 0; 

std::cin >> std::hex >> hex; 
std::cout << hex << std::endl; 

hex = Number; 

bool Binary[sizeof(int) * CHAR_BIT]; 
for(unsigned int i = 0; i < sizeof(int) * CHAR_BIT; i++) 
Binary[(sizeof(int) * CHAR_BIT - 1) - i] = Number & (1 << i); 
for(unsigned int i = 0; i < sizeof(int) * CHAR_BIT; i++) 
    std::cout << Binary[i]; 
std::cout << std::endl; 
system("pause"); 
return 0; 
} 
+0

Что вы подразумеваете под «неправильным кодом BIN»? Можете ли вы показать примеры ввода и вывода? Кроме того, что вы подразумеваете под «складыванием»? –

+0

вход: F (шестнадцатеричный) вывод: 15 (dec) и 0 (bin) «сборка», поэтому программа выводит десятичное значение и двоичное значение из введенного шестнадцатеричного значения – Joriek

ответ

1

Похоже, что вы хотите

Number = hex; 

вместо

hex = Number; 

Помните, что назначение идет от право на оставил.

+0

благодаря тому, что оно работает сейчас – Joriek

0
hex = Number; 

Ваш "HEX в BIN" часть всегда работает на 0. Всегда. Возможно, вы имели в виду Number = hex;.