如何将一非负十进制数转换成n(2<=n<=35)进制?

作者&投稿:柯胞 (若有异议请与网页底部的电邮联系)
~ n进制就是逢n进1。
n进制数采用
0~n-1这n数来表达一个数。
n进制数第0位的权值为n的0次方,第1位权值为n的1次方,第2位权值为n的2次方……
把要转换的数,除以n,得到商和余数,
将商继续除以n,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。
比如:十进制6,如果将它转换成二进制数呢?
要转换的数是6,
6
÷
2,得到商是3,余数是0。
(“将商继续除以2,直到商为0……”)
现在商是3,还不是0,所以继续除以2。
那就:
3
÷
2,
得到商是1,余数是1。
现在商是1,还不是0,所以继续除以2。
那就:
1
÷
2,
得到商是0,余数是1
 
“将商继续除以2,直到商为0……最后将所有余数倒序排列”
好极!现在商已经是0。
我们三次计算依次得到余数分别是:0、1、1,将所有余数倒序排列,那就是:110了!

似乎很简单的样子,10进制转换成n进制都是除以n,取余数,然后反向输出就可以了,so
easy


编写一个算法,实现对于输入的任意一个非负十进制整数,打印输出与其等值...
\/\/十进制和8进制的转换 void zhuan(int n,int jin){ while(n>0){ result[index++]=n%jin;n=n\/jin;} } int main(int argc, char* argv[]){ int x,y;printf("请输入十进制数和转换进制:");scanf("%d %d",&x,&y);zhuan(x,y);\/\/从高位输出 for(int j=index-1;j>=0;j-...

数制转换问题 [问题描述] 将输入的非负十进制整数转换为N进制数输出...
进制转换,讲十进制转换为任意进制;n是十进制数,r是转为的进制;r不超过16;include<stdio.h> int main(){ int n,r,i;while(scanf("%d%d",&n,&r)!=EOF){ int a[100000];i=-1;if(n<0){printf("-");n*=-1;} while(n){a[++i]=n%r;n\/=r;} for(i;i>=0;i--){if(...

写一个文法,使其是十进制非负偶数集合。,1可以0打头,2.不可以0打头_百...
开头允许是0:S→AB A→0A|1A|2A|3A|4A|5A|6A|7A|8A|9A|ε B→0|2|4|6|8 开头不允许是0:S→AB A→1A|2A|3A|4A|5A|6A|7A|8A|9A|ε B→0|2|4|6|8 奇偶性 可分为奇数和偶数。1、奇数:不能被2整除的数叫奇数。2、偶数:能被2整除的数叫偶数。也就是说,一个自然数...

...满足如下条件:对于输入任何一个非负十进制整数,打印输出与其等值的...
include <stdio.h> void f(int i){ if(i >0){ f(i \/ 2);printf("%d", i % 2);} else return;} void main(){ int i;printf("请输入十进制正数\\n i = ");scanf("%d", &i);if(i>0){ printf("转化后的二进制数为:");f(i);} else printf("您输入的数必须为正数!"...

...产生的十六进制数作字符串处理如十进制数27转换为'1B'
ch = *(result + j);(result + j) = *(result + i - 1 - j);(result + i - 1 - j) = ch;} (result + i + 1) = 0;return i + 1;} int main(){ char result[20];memset(result, 0, 10);int n = Convert(27, result);printf("%s\\n", result);return 0;} ...

十进制如何转化为二进制
十进制转化为二进制的方法如下:1. 对于非负整数部分,使用除2取余法。即将十进制数的整数部分不断除以2,并记录每次的余数,直到商为0为止。按照余数从下到上的顺序,将所得到的余数序列组合起来即为二进制数的整数部分。2. 对于小数部分,采用乘2取整法。将十进制小数部分乘以基数2,并依次取出的...

一个十进制表达形式的非负整数,为什么其5次方的个位 等于 其本身的个位...
则其四次方的个位数为0,1,5,6 末尾是0,1,5的正整数的五次方其个位数一定是0,1,5,等于其本身。末尾是2,4,6,8的四次方个位为6,5次方也一定是2,4,6,8 ,等于其本身,末尾是3,7,9 的正整数的四次方个位数是1,五次方个位数一定是3,7,9.等于其本身,综上满足,任何一个十进制表达...

二进制、十进制转换
十进制转二进制其实不止一种方法,有除二取余法、凑数法等等,这里我们介绍 [凑数法] 。那什么是凑数法呢?我们知道在二进制中,每一位都是2的指数幂,所以我们可以将一个十进制数先拆开,凑成几个2的指数的和,然后将拆开的数的指数填入对应二进制位。先来看个 例子 : 123 =64+32+16...

...输入一个非负整数 输出这个数的逆序十进制数。例如 输入1234,输出...
include<stdio.h>void reverse(unsigned int value){ if (value==0) return; printf("%d", value % 10); reverse(value\/10);\/\/ 递归}int main(int argc, char* argv[]){ reverse(1234); printf("\\n"); return 0;} ...

如何将十进制数转换为二进制数?
2、逢十进一:十进制数在每十位上,逢十进一。也就是说,当任何数位上的数字达到10时,它将被进位到下一位。3、位权表示:在十进制数中,每个数字的位置都有其对应的权值。例如,在数字123中,1代表100,2代表10,3代表1。这个规则用于表示大于9的数字和十进制的整数部分和小数部分。4、非负...

鄂尔多斯市15665796401: 将一个非负十进制数转换成n(2<=n<=35)进制.
毋贤格华: int a,n; int b[50]; int temp,i,j; scanf("请输入非负十进制数:%d",&a); scanf("请输入转换成的进制(2~35):%d",&n); i=0; temp=a/n; b[0]=a%n; while(temp!=0) { i++;b[i]=temp%n; temp=temp/n;} printf("转换后的N进制数为:"); for(j=i;j>=0;j--) {printf("%d ",b[j]); }

鄂尔多斯市15665796401: 十进制数小数部分如何转化成n进制数?(急) -
毋贤格华: 一般来说,十进制数的小数部分是很难转化成有限位n进制数的. 举十进制到二进制的转化为例子. 十进制数0.3转化成二进制数的方法如下: 0.3*2=0.6……整数部分为0,记0; 0.6*2=1.2……整数部分为1,记1; 0.2*2=0.4……整数部分为0,记0; 0.4*2=0.8……整数部分为0,记0; 0.8*2=1.6……整数部分为1,记1; 小数0.6部分出现循环,所以十进制数0.3转化为2进制数为:0.0100110011001……其中1001循环. 若是n进制,只要用小数部分乘这个数n,扣除整数部分后再乘这个数n. 一般情况下是得不到有限位的.

鄂尔多斯市15665796401: 1.十进制转换n进制:输入一个十进制整数,将其转换成二进制数、八进制数或十六进制数,利用列表框选择要转 -
毋贤格华: 我用的C,就列出我写的转二进制吧,八进制与十六进制一样的道理#include<stdio.h> void f(int f,int g[],int m) { int d,i,l=0; i=f; while(1) { l++; if(i>0) { d=i%2; i=i/2; if(d==0) g[m-l]=0; else g[m-l]=1; } else g[m-l]=0; if(l>16) break; } } int main() { int a,b,c[16]; ...

鄂尔多斯市15665796401: 怎么把十进制数转换为二进制
毋贤格华: 十进制转成二进制是这样: 把这个十进制数做二的整除运算,并将所得到的余数倒过来. 例如将十进制的10转为二进制是这样: (1) 10/2,商5余0; (2) 5/2,商2余1; (3)2/2,商1余0; (4)1/2,商0余1. (5)将所得的余数侄倒过来,就是1010,所以...

鄂尔多斯市15665796401: 编写一个程序,把一个非负的十进制数转换为任意2到16进制的数 -
毋贤格华: #include "Stdio.h"#include "Conio.h" void z(int n, int b, int *m) {//进制转换,n为要转换数字,b为进制,m存储转换之后的结果 int i=0; while(n!=0) { m[i++]=n%b; n=n/b; } m[i]=-1; } void print(int * m) {//输出转换结果 int i=0; while(m[i++]!=-1) {; } ...

鄂尔多斯市15665796401: (数据结构)将十进制数转换成N进制数,急急急急十万火急!!!!!!!!!!
毋贤格华: asp写的,支持10以下进制,16进制自己添加一下abcdef的选择就行 '十进制转M进制 function DexTo(num,m) dim tmp tmp = "" do while(num>=1) tmp = tmp & cstr(num mod m) num = int(num / m) loop DexTo = StrReverse(tmp) end function 'M进...

鄂尔多斯市15665796401: 十进制小数如何转成n进制 -
毋贤格华: 连乘,积的整数正序排列.

鄂尔多斯市15665796401: 小数,负数由十进制转为二进制该怎样转换? -
毋贤格华: 小数部分: 例:0.625*2=1.25 0.25 *2=0.5 0.5 *2=1.0 然后将整数部分按从上往下的顺序书写就是:101,那么这个101就是十进制0.625的二进制形式; 所以:(25.625)(十)=(11001.101)(二) 十进制转成二进制是这样: 把这个十进制数做二的整除运算,并将所得到的余数倒过来. 例如,将十进制的10转为二进制是这样: (1) 10/2,商5余0; (2) 5/2,商2余1; (3)2/2,商1余0; (4)1/2,商0余1. (5)将所得的余数侄倒过来,就是1010,所以十进制的10转化为二进制就是1010

鄂尔多斯市15665796401: 算法设计:将一个非负十进制整数N转换成r进制数 -
毋贤格华: 循环对r 求余.char buf[200]; int i=0; whil (N > 0) { buf[i] = N%r+ 48; N = (int)N/r; i++; } 再把buf放过来排列输出就对了.其实如果只是要输出的话,用_itoa_s函数更简单,引用<stdlib.h>函数原型:errno_t _itoa_s( int value, char *buffer, size_t sizeInCharacters,int radix ); 上面的只要 _itoa_s(N,buf,200,r);就好了.

鄂尔多斯市15665796401: 十进制小数怎么转换为二进制小数 -
毋贤格华: 方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分 为零为止.如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网