#include <stdio.h> int main() { int a=20; printf("%d\n",a);//以十进制输出 printf("%x\n",a);//以16进制输出 printf("%o\n",a);//以8进制输出 return 0; } 运行结果如下: 可惜的是c语言内置函数没有直接输出二进制的,可以通过以下代码实现: #include <stdio.h> void shuchu(int n)...
如果是有符号型变量,且该值二进制首位为1(如我们定义的是char buf[100],且buf[0]中为0xbf),则会按照补码形式前面全置为1,也就是全为f。(因为终端显示的是8个十六机制数字;另外,我用Tobor C编译,因为Tobor C中int是2bytes,终端显示就成4个十六进制数字了:ffbf,因此我猜测,printf函数显示之前先将有符号...
main(){ char b[17]={"0123456789ABCDEF"}; /*十六进制位值表示,相当于十进制的0—9;*/ int c[64],d,i=0,base=16;long n;printf("Enter a number:\n");scanf("%ld",&n);do { c[i]=n%16; /*得到16进制的各个位,放进c【i】,如58,等于3余10,*/ i++; /...
{d=c[i];printf("%c",b[d]);}//这里是b[d]printf("\n");}
用 %x 格式输出就是16进制。int a=0;printf("0x%08x",a);输出:0x00000000
x>>=1; }returnbits; }intint_bits(void)// 返回无符号整型数据的总位数{returncount_bits(~0U); }voidprint_nbits(unsigned x, unsigned n)// 输出二进制数, 同时指定了显示的位数{inti =int_bits(); i= (n < i) ? (n -1):(i -1);for(; i >=0; i--) ...
lnum代表你输入的长整数 初始时l=0;while(num){ a[l++]=num%16;num/=16;} for(i=l-1;i>=0;i--)printf("%d",a[i]); // 输出转换结果 printf("\n");
C语言编程:输入一个十进制整数(int 型),以十六进制形式分别输出该数高端2字节和低端2字节对应的值。 如输入:-32768则输出:ffff,8000又如输入:1则输出:0000,0001提示:inta=1;printf("%04d",a);则输出为:0001麻烦给出具体的程序,谢谢... 如输入:-32768则输出:ff
include <stdio.h> include <stdlib.h> //可以省略 int main(){ short i;scanf("%hd",&i); //加个h i=(short) i; //可以省略 printf("%hx\n",i); //加个h return 0; //可以省略 } h是长度修饰符,作用是将整型数修正为short型 ...
include<stdio.h> main(){ long int n;printf("please enter one number :");scanf("%d",&n);printf("%x",n);}