2012-03-07 87 views
-4

我写了2个程序,将HEX转换为DEC和DEC转换为BIN。 当我测试他们seperatly他们的工作。 当我把它们放在一起时,它会输出正确的DEC码,但输出错误的BIN码。 我该如何解决这个问题?HEX到BIN转换

HEX到DEC

#include <iostream> 

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

DEC到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码”?你能展示输入和输出的例子吗?另外,你是什么意思的“放在一起”? – 2012-03-07 10:12:31

+0

输入:F(十六进制) 输出:15(dec)和0(bin) “放在一起”,所以程序从输入的十六进制值 – Joriek 2012-03-07 10:15:06

回答

1

它看起来像你想

Number = hex; 

代替

hex = Number; 

记住,分配去从

+0

输出十进制值和二进制值,感谢它现在的作品 – Joriek 2012-03-07 10:17:12

0
hex = Number; 

你 “HEX到BIN” 部分始终工作在0。总是。也许你的意思是Number = hex;