一个长整型数占
4
个字节,其中每个字节又分成高
4
位和低
4
位。试从长整型数的低字节开始,依次取出每个字节的高
4
位和低
4
位并以
ASCII
码的形式进行显示。
#include <stdio.h>
int main(void)
{
long a;
char *p,aup,alow;//定义一个字符指针和两个用来存储高位和低位的字符变量
printf("请输入一个十六进制的整数(如0xAB123456):");
scanf("%lx",&a);
p=(char*)&a;
for (int i=0; i<4; i++)
{
aup=*p>>4&0x0f;//取出一个字节中的高4位
alow=*p&0x0f;//取出一个字节中的高4位
if(aup>=0&&aup<=9)
{
printf("%c,",aup+'0');
}
else
{
printf("%c,",aup+'A'-10);
}
if (alow>=0&&alow<=9)
{
printf("%c\n",alow+'0');
}
else
{
printf("%c\n",alow+'A'-10);
}
p++;
}
return 0;
}
#include <stdio.h>
int main(void)
{
long a;
char *p,aup,alow;//定义一个字符指针和两个用来存储高位和低位的字符变量
printf("请输入一个十六进制的整数(如0xAB123456):");
scanf("%lx",&a);
p=(char*)&a;
for (int i=0; i<4; i++)
{
aup=*p>>4&0x0f;//取出一个字节中的高4位
alow=*p&0x0f;//取出一个字节中的高4位
if(aup>=0&&aup<=9)
{
printf("%c,",aup+'0');
}
else
{
printf("%c,",aup+'A'-10);
}
if (alow>=0&&alow<=9)
{
printf("%c\n",alow+'0');
}
else
{
printf("%c\n",alow+'A'-10);
}
p++;
}
return 0;
}