十进制与其他进制的转换

    技术2022-05-11  104

    #include <stdio.h>

    char *form = "%c";

    void binary(int n){ if (n <= 1)  printf("%d", n); else {  binary(n/2);  printf("%d", n%2); }}void octal(int n){ if (n <= 8)  printf("%d", n); else {  octal(n/8);  printf("%d", n%8); }}void hex(int n){ if (n <= 16)  printf("%d", n); else {  hex(n / 16);  switch((n % 16))  {  case 1:   __asm mov eax, '1';    break;  case 2:   __asm mov eax, '2';   break;  case 3:   __asm mov eax, '3';   break;  case 4:   __asm mov eax, '4';   break;  case 5:   __asm mov eax, '5';   break;  case 6:   __asm mov eax, '6';   break;  case 7:   __asm mov eax, '7';   break;  case 8:   __asm mov eax, '8';   break;  case 9:   __asm mov eax, '9';   break;  case 10:   __asm mov eax, 'a';   break;  case 11:   __asm mov eax, 'b';   break;  case 12:   __asm mov eax, 'c';   break;  case 13:   __asm mov eax, 'd';   break;  case 14:   __asm mov eax, 'e';   break;  case 15:   __asm mov eax, 'f';   break;  }  __asm push eax;  __asm push form;  __asm call printf;  __asm add esp, 8; }}void main(){ printf("Hello world./n"); binary(100); printf("/n"); octal(100); printf("/n"); hex(100); printf("/n");} 


    最新回复(0)