package com.jiepu.jfinal; /** * java进制转换 * */ public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); int n1 = 14; //十进制转成十六进制: System.out.println(Integer.toHexString(n1)); //十进制转成八进制 System.out.println(Integer.toOctalString(n1)); //十进制转成二进制 System.out.println(Integer.toBinaryString(12)); //十六进制转成十进制 System.out.println(Integer.valueOf("FFFF",16).toString()); //十六进制转成二进制 System.out.println(Integer.toBinaryString(Integer.valueOf("FFFF",16))); //十六进制转成八进制 System.out.println(Integer.toOctalString(Integer.valueOf("FFFF",16))); System.out.println("==="); //八进制转成十进制 System.out.println(Integer.valueOf("576",8).toString()); //八进制转成二进制 System.out.println(Integer.toBinaryString(Integer.valueOf("23",8))); //八进制转成十六进制 System.out.println(Integer.toHexString(Integer.valueOf("23",8))); //二进制转十进制 System.out.println(Integer.valueOf("10100",2).toString()); //二进制转八进制 System.out.println(Integer.toOctalString(Integer.parseInt("10100", 2))); //二进制转十六进制 System.out.println(Integer.toHexString(Integer.parseInt("10100", 2))); } }
//将字符串a, b, c,d分别采用10,2,16,8进制转换成数字 //------------------------------------------------ #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <string> int main() { char a[] = "100"; char b[] = "100"; char c[] = "0x11"; char d[] = "100"; int x, y, z,m; x = strtol( a, NULL, 10 ); y = strtol( b, NULL, 2 ); z = strtol( c, NULL, 16 ); m = strtol( d, NULL, 8 ); printf( "x = %d\n", x ); printf( "y = %d\n", y ); printf( "z = %d\n", z ); printf( "m = %d\n", m ); getch(); return 0; }
#include <stdlib.h> #include <stdio.h> #include <string.h> //函数itob实际上是一个整数转任意进制(2~36) void itob(int n, char s[], int b); void new_reverse(char s[]); int main(void) { char buffer[10]; int iTmp, radix, flag; while (1) { printf("Please input a int number(q to quit): "); flag = scanf("%d", &iTmp); if (flag != 1) break; printf("Please input the radix in dec num: "); scanf("%d", &radix); while (getchar() != '\n'); itob(iTmp, buffer, radix); printf("Dec num %d in radix %d is %s\n\n", iTmp, radix, buffer); } system("pause"); return 0; } //整型转字符型(含进制转化): 编写函数itob(n,s,b),将整数n转换为以b为底的数,结果存入s. 例如,itob(n,s,16)把整数n格式化成十六进制整数保存在s中. void itob(int n, char s[], int b) { static char digits[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int i, sign; if (b < 2 || b > 36) { fprintf(stderr, "Can not suppoert base %d\n", b); exit (0); } if ((sign = n) < 0) n = -n; i = 0; do { s[i++] = digits[n % b]; } while ((n /= b) > 0); if (sign < 0) s[i++] = '-'; s[i] = '\0'; new_reverse(s); } void new_reverse(char s[]) { int c, i, j; for (i = 0, j = strlen(s)-1; i < j; i++,j--) { c = s[i]; s[i] = s[j]; s[j] = c; } }