首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

进制互换解决方法

2012-03-23 
进制互换一个简单的进制之间的转换,代码如下:#include stdio.h#include string.hvoid main(){char aaa

进制互换
一个简单的进制之间的转换,代码如下:

#include <stdio.h>
#include <string.h>

void main()
{  

  char aaa[5];
  unsigned char bbb, i, k, Err = 0;
  long unsigned int nnn = 0;


   
  printf(" \nplease input your number (0~9, A~Z): "); 
gets(aaa);
  printf(" \nplease input the Hex (2,8,4,10,16): ");  
scanf("%d", &bbb);
  for (i = 0; i < strlen(aaa); i++) {
  if (aaa[i] >= '0' && aaa[i] <= '9') k = aaa[i] - 48;
  if (aaa[i] >= 'a' && aaa[i] <= 'z') k = aaa[i] - 87;
  if (k < bbb) 
nnn = nnn * bbb + k;
  else {
Err = 1; 
break;
}
  }
  if (!Err) {
  printf ("\n 2,4,8,10,16Hex,The output is:");
  printf ("\n\n 2: ");
  for (i = 32; i > 0; i--) printf ("%d", (nnn >> (i - 1)) & 1);  
  printf ("\n\n 4: ");
  for (i = 16; i > 0; i--) printf ("%d", (nnn >> (2 * (i - 1))) & 3);
  printf ("\n\n 8: %o ", nnn);
  printf ("\n\n 10: %u ", nnn);
  printf ("\n\n 16: %x \n\n", nnn);
}
  else printf ("input error ! \n");
  system("pause");


其中红色部分该如何解释呢?

[解决办法]
因为十六进制,十进制,八进制都可以通过printf去直接打印出来,即对应%x/%o/%d,但是二进制和四进制没有对应的%。。。

热点排行