输入一个十进制整数(int 型),以十六进制形式分别输出该数高端2字节和低端2字节对应的值。

如输入:
-32768
则输出:
ffff,8000
又如输入:
1
则输出:
0000,0001
提示:int a=1;printf("%04d",a);则输出为:0001

在C语言中,打印16进制可以使用printf的%x格式。

打印二进制数并没有现成的格式数值,只能自行编写函数打印。

以下是一个打印二进制值的函数,通过位操作,逐位判断二进制值,并输出对应的值。

默认高位0不输出。

1234567891011121314151617

void print_bin(int n){    int l = sizeof(n)*8;//总位数。    int i;    if(i == 0)    {         printf("0");         return;     }    for(i = l-1; i >= 0; i --)//略去高位0.    {        if(n&(1<<i)) break;    }     for(;i>=0; i --)        printf("%d", (n&(1<<i)) != 0);}
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-28
C语言里,int 只有两个字节,哪来的高二字节和低二字节?
第2个回答  2018-03-28
变量 & 0x0000FFFF 得到低端两字节
(变量>>16) & 0x0000FFFF 得到高端两字节
十六进制输出要用 %x本回答被网友采纳

输入一个十进制整数(int 型),以十六进制形式分别输出该数高端2字节和低...
= 0);}

C语言编程:输入一个十进制整数(int 型),以十六进制形式分别输出该数高...
void compute (int n , char *str_y , char *str_f , char *str_b){ int i = 0 ;int j = 0 ;int temp = 0 ;int len = 0 ;char str_yuan_1 [20] ;char str_yuan_2 [20] ;char str_fan[20] ;char str_bu[20] ;char toChar = '1' - 1 ;if(n > 0) temp = ...

10进制整数转16进制数VFP程序中几处的含义
HB2: CLR A ;BCD码初始化 MOV R3,A MOV R4,A MOV R5,A MOV R2,#10H ;转换双字节十六进制整数 HB3: MOV A,R7 ;从高端移出待转换数的一位到CY中 RLC A MOV R7,A MOV A,R6 RLC A MOV R6,A MOV A,R5 ;BCD码带进位自身相加,相当于乘2 ADDC A,R5 DA A ;十进制调整 MOV...

CPU的一个问题?
字节和字长的区别:由于常用的英文字符用8位二进制就可以表示,所以通常就将8位称为一个字节。字长的长度是不固定的,对于不同的CPU、字长的长度也不一样。8位的CPU一次只能处理一个字节,而32位的CPU一次就能处理4个字节,同理字长为64位的CPU一次可以处理8个字节。 5.倍频系数 倍频系数是指CPU主频与外频之间的...

int(*ptr)[m] ,int(*ptr)()
让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int*ptr; (2)char*ptr; (3)int**ptr; (4)int(*ptr)[3]; (5)int*(*ptr)[4]; 指针的类型 从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。让我们看看例一中各个指针的类型...

求单片机汇编语言怎样编程才能实现将一个十六进制数转换为十进制数
看你的十六进制数是几个字节的,如果是单字节,则作两次除法:先除以100,商即百位数;再用余数除以10,商即十位数,余数为个位数;如果是≥2字节,以上的运算则显得过于占用程序处理时间,要用到移位运算,设置数据寄存器区(2字节十六进制数则需4个寄存器区和一个循环计数器),每左移一位后进行数据调节:(...

组装电脑我想用一个小容量的固态硬盘做系统盘,大容量普通硬盘装软件等其...
柱面数(Cylinders) 表示硬盘每一面盘片上有几条磁道,最大为 1023(用 10 个二进制位存储); 扇区数(Sectors) 表示每一条磁道上有几个扇区, 最大为 63(用 6个二进制位存储). 每个扇区一般是 512个字节, 理论上讲这不是必须的,但好象没有取别的值的. 所以磁盘最大容量为: 255 * 1023 * 63 * 512 \/...

...将一个双字节的16进制数转换为十进制,转换后的数只保留万千_百度知 ...
子程序如下:MOV A, R4 ;R4原有十、个位数 SWAP A ANL A, #0FH ;截取十 MOV B, A ;保存一下 ;MOV A, R3 ;R3原有千、百位 SWAP A MOV R3, A ;变成百、千位 ANL A, #0F0H ;截取百位 ADD A, B ;加上十位 XCH A, R3 ;R3中就是百位、...

c#里面,ASCIIEncoding.ASCII.GetBytes(s)返回的是一个数组吗?如果...
{31, 32, 33 ,34 }

c语言中什么时候可以这样定义数组"int a[]"
以"int a[]"形式定义数组一般有两种情况:定义数组,并通过初始化方式来填写数组内容 int a[]={1,2,3,4,5} ;这与int a[5]={1,2,3,4,5} ; 是一样的,[]中不写数字,表示数组空间大小由实际数组元素数据个数来决定。这样定义的数组,一般表示一个常量数组。当然,因为没有加const,也...

相似回答