16进制 0x 123 -> 0001 0010 0011
%x 输出16进制整型数字
8 进制 0 123 -> 001 010 011
1、将输入的数字转化为2~32进制
void Change(char *str)//字符串逆置{ char tmp = 0;//临时变量 char *p = str;//保存首地址 while(*p != '\0') p++;//此时走到尾部 p--; for(;str<p;str++,p--) { tmp = *str; *str = *p; *p = tmp; }}
void Myitoa(int n,char *str,int radix)//进制转换{ char des[] = "0123456789abcdefghijklmnopqrstuvwsyz";//下标与表示字符一 一对应。查表 int i = 0; do { str[i++] = des[n%radix]; n /= radix; }while(n>0); str[i] = '\0'; Change(str);}
int main(){ int n = 10; int m = 13455; char str[40]; Myitoa(m,str,32); printf("%s\n",str);}
2、假设在n进制下,下面的等式成立,567*456=150216,n的值为(18)
A 、9 B、10 C、12 D、 18
(5*n^2+6*n+7)*(4*n^2+5^n+6)= 20*n^4+49*n^3+88*n^2+71*n+42 = n^5+5*n^4+2*n^2+n+6
第一种:直接对两边取余,得到 42%n=6%n=1 。若第一种判断不出则使用第二种。
第二种 : 先两边除n ,在对n取余。 (71+42/n)%n = (1+6/n)%n=1
转载于:https://www.cnblogs.com/97-5-1/p/7414148.html
