十进制转十六进制

输入一个十进制整数,将其转换成十六进制数输出,并提取每一字节所表示的十六进制数值逐一输出。测试数据如下:

分析:从控制台输入一个十进制整数,将其转换成十六进制数输出,接着提取其4个字节。用到按位与运算符“&”、右移位运算符“>>”。

ps:“0x”是十六进制数的前缀。位(bit):度量数据的最小单位,表示一位二进制信息;字节(byte):由八位二进制数字组成(1 byte = 8 bit)。1个字节表示2位十六进制数。

新建一个Visual C 控制台程序


 

#include "stdafx.h"
#include 
#include 

#include  

using namespace std;

int main()
{
	int a = 123456789;
	cout << hex<> 0) & 0x000000ff);
	int a1 = ((a >> 8) & 0x000000ff);
	int a2 = ((a >> 16) & 0x000000ff);
	int a3 = ((a >> 24) & 0x000000ff);

//	unsigned char ucInfo[4];


	cout << hex<> 0) & 0x000000ff);
	unsigned char c1 = (unsigned char)((a >> 8) & 0x000000ff);
	unsigned char c2 = (unsigned char)((a >> 16) & 0x000000ff);
	unsigned char c3 = (unsigned char)((a >> 24) & 0x000000ff);


	system("Pause");

    return 0;
}


当输入123456789时,对应的十六进制数为0x075BCD15。

第1个字节为0x15,十进制为21。

右移8位后,对应的十六进制数为0x00075BCD。

第2个字节为0xCD,十进制为205。

右移16位后,对应的十六进制数为0x0000075B。


第3个字节为0x5B,十进制为91。

右移32位后,对应的十六进制数为0x00000007。

第4个字节为0x07,十进制为7。
对应的,当输入其他数据时,依然这样逐步分析。
 

你可能感兴趣的:(C++/VC,进制)