public void baseConversion(int i){
Stack<String> s = new Stack<String>();
while(i > 0){
s.push(i%8+"");
i=i/8;
}
while(!s.isEmpty()){
System.out.print(s.pop());
}
}
16进制转换为10进制:
int HexToDec(char *s) { char *p = s; //空串返回0。 if(*p == '\0') return 0; //忽略开头的'0'字符 while(*p == '0') p++; int dec = 0; char c; //循环直到字符串结束。 while(c = *p++) { //dec乘16 dec <<= 4; //数字字符。 if(c >= '0' && c <= '9') { dec += c - '0'; continue; } //小写abcdef。 if(c >= 'a' && c <= 'f') { dec += c - 'a' + 10; continue; } //大写ABCDEF。 if(c >= 'A' && c <= 'F') { dec += c - 'A' + 10; continue; } //没有从任何一个if语句中结束,说明遇到了非法字符。 return -1; } //正常结束循环,返回10进制整数值。 return dec; }