精华内容
下载资源
问答
  • 输入一个十进制数N,将它转换成R进制数输出。 输入: 输入共一行,包含两个整数N(32位正整数)和R(2<=R, R<>10)。 输出: 输出转换后的数,输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10-16...
  • 进制R进制进制转二进制进制整数转二进制进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。 例题: 135D = __ B 解析:如下图所示,将135除以2,得余数,直到...

    1.十进制转R进制

    1.1 十进制转二进制

    十进制整数转二进制

    十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。

    例题: 135D = ______ B

    **解析:**如下图所示,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取。得到结果:1000 0111B.
    这里写图片描述

    图1.十进制整数转二进制

    十进制小数转二进制

    十进制小数转换成二进制小数采用 “乘2取整,顺序排列” 法。

    具体做法是:

    用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

    然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

    例题: 0.68D = ______ B(精确到小数点后5位)

    **解析:**如下图所示,0.68乘以2,取整,然后再将小数乘以2,取整,直到达到题目要求精度。得到结果:0.10101B.

    在这里插入图片描述

    图2.十进制小数转二进制

    1.2 十进制转八进制

    思路和十进制转二进制一样,参考如下例题:

    例题: 10.68D = ______ Q(精确到小数点后3位)

    **解析:**如下图所示,整数部分除以8取余数,直到无法整除。小数部分0.68乘以8,取整,然后再将小数乘以8,取整,直到达到题目要求精度。得到结果:12.534Q.

    这里写图片描述

    图3.十进制转八进制

    1.3 十进制转十六进制

    思路和十进制转二进制一样,参考如下例题:

    例题: 25.68D = ______ H(精确到小数点后3位)

    **解析:**如下图所示,整数部分除以16取余数,直到无法整除。小数部分0.68乘以16,取整,然后再将小数乘以16,取整,直到达到题目要求精度。得到结果:19.ae1H.

    这里写图片描述

    图4.十进制转十六进制
    # 2.R进制转十进制 ## 2.1 二进制转十进制 **方法为:**把二进制数按权展开、相加即得十进制数。(具体用法如下图)

    例题: 1001 0110B = ______ D

    **解析:**如下图所示。得到结果:150D.

    这里写图片描述

    图5.二进制转十进制

    2.2 八进制转十进制

    八进制转十进制的方法和二进制转十进制一样。

    例题: 26Q = ______ D

    **解析:**如下图所示。得到结果:22D.

    这里写图片描述

    图6.八进制转十进制

    2.3 十六进制转十进制

    例题: 23daH = ______ D

    **解析:**如下图所示。得到结果:9178D.

    这里写图片描述

    图7.十六进制转十进制

    3.二进制转八进制

    二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位。

    例题: 1010 0100B = ____Q

    **解析:**计算过程如下图所示。得到结果:244Q.

    这里写图片描述

    图8.二进制转八进制

    4.二进制转十六进制

    二进制转换成八进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位。

    例题: 1010 0100B = ____H

    **解析:**计算过程如下图所示。得到结果:a4H.

    这里写图片描述

    图9.二进制转十六进制

    5.工欲善其事,必先利其器

    下面的表格是8位二进制所对应的十进制数值,对进制转换以及类似题目的理解非常有用:

    1 1 1 1 1 1 1 1 B
    128 64 32 16 8 4 2 1 D

    注:B:二进制
           D:十进制


    例题: 135D = ______ B

    **解析:**有了上面二进制对应十进制数值的表格,我们就可以将题目给的十进制135拆分为:128+7,再从表格中找到对应的数值,拼凑即可得到答案。
    135D = 128D + 7D = 1000 0111B

    展开全文
  • 进制转换R进制R进制转十进制

    千次阅读 2018-07-31 15:51:49
    进制转换R进制 (1)直接用C++里的函数,(不建议) itoa函数:它的功能是将一个10进制的数...//num转R进制,存到str (2)自定义函数  int to_Other(int n,int r) { int s[105],len=0; if(n==0)printf...

    十进制转换R进制

    (1)直接用C++里的函数,(不建议)

    itoa函数:它的功能是将一个10进制的数转化为n进制的值、其返回值为char型。

    char str[105];

    itoa(num, str, R);//num转R进制,存到str中

    (2)自定义函数 

    int to_Other(int n,int r)
    {
    	int s[105],len=0;
    	if(n==0)printf("0");
    	while(n){
    		int t=n%r;
    		n=n/r;
    		s[len++]=t;
    	}
    	char sh[105];
    	for(int k=len-1,j=0;k>=0;k--,j++)
    	{
    		if(s[k]>=10){
    			sh[j]=(char)(s[k]+55);
    			printf("%c",sh[j]);
    		}
    		else {
    			sh[j]=(char)(s[k]+'0');
    			printf("%c",sh[j]);
    		}
    	}
    }

    (3)通过库函数实现八进制、十六进制输出:

    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int test=64;
    	cout<<"DEC:"<<test<<endl;
    	cout<<"OCT:"<<oct<<test<<endl;//八进制
    	cout<<"HEX:"<<hex<<test<<endl;//十六进制
    
    	return 0;
    }
    
     

    R进制转换十进制

    (1)直接用C++里的函数,(不建议)

    strtol函数:它的功能是将一个任意1-36进制数转化为10进制数,返回是long int型。

    函数为long int strtol(const char *nptr, char **endptr, int base)

    base是要转化的数的进制,非法字符会赋值给endptr,nptr是要转化的字符,例如:

    char buffer[20]="10379cend$3";
    char *stop;
    printf("%d\n",strtol(buffer, &stop, 8));
    printf("%s\n", stop);
    

    输出结果:
    543
    9cend$3

    将一个8进制转化为10进制,读取1037,其他后面的为非法字符,转化结果以int型输出来。

    另外,如果base为0,且字符串不是以0x(或者0X)开头,则按十进制进行转化。如果base为0或者16,并且字符串以0x(或者0X)开头,那么,x(或者X)被忽略,字符串按16进制转化。如果base不等于0和16,并且字符串以0x(或者0X)开头,那么x被视为非法字符。

    最后,需要说明的是,对于nptr指向的字符串,其开头和结尾处的空格被忽视,字符串中间的空格被视为非法字符。

    (2)自定义函数

    int to_Ten(char sh[],int r)
    {
    	int len=strlen(sh),n=0;
    	double sum=0,k;
    	for(int i=len-1;i>=0;i--)
    	{
    		if(sh[i]>='A')k=(sh[i]-'7')*pow(r*1.0,n++);
    		else k=(sh[i]-'0')*pow(r*1.0,n++);
    		sum+=k;
    	}
    	printf("%.0lf\n",sum);
    }

     

    参考:

    https://blog.csdn.net/wangjunchengno2/article/details/78690248

    https://blog.csdn.net/coastline_x/article/details/78975567

    https://www.cnblogs.com/yxwkf/p/4085733.html

    展开全文
  • 进制R进制

    千次阅读 2019-03-30 11:56:30
    进制R进制(除法+乘法) 十进制转换为r进制,分为整数和小数两部分,两部分分别转换,然后拼接起来即可。 整数部分转换为r进制数时,采用除r取余方法,将十进制整数不断除以r取余数,直到商为0,所得的余数按...
    • 十进制转R进制(除法+乘法)
      • 十进制转换为r进制,分为整数和小数两部分,两部分分别转换,然后拼接起来即可。
      • 整数部分转换为r进制数时,采用除r取余方法,将十进制整数不断除以r取余数,直到商为0,所得的余数按逆序排列
      • 小数部分转换成r进制数时,采用乘r取整方法,即将十进制小数不断乘以r取整数,直到小数部分为0或达到要求的精度为止,所得的整数按正序排列。
        如下图所示:
        在这里插入图片描述
    展开全文
  • 1、10进制R进制 直接对每一位做除法,求对应余数累加上去即可。 #include<bits/stdc++.h> using namespace std; typedef long long LL; string base = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int main...

    1、10进制转R进制

    • 直接对每一位做除法,求对应余数累加上去即可。
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    string base = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    
    int main(){
    	int T;  cin>>T;
    	while(T--){
    		int n, k;  cin>>n>>k;
    		string s;
    		while(n){
    			s += base[n%k];
    			n /= k;
    		}
    		reverse(s.begin(),s.end());
    		cout<<s<<"\n";
    	}
    	return 0;
    }
    

    2、R进制转10进制

    • 枚举每一位,以R的i次方为幂,乘以那一位的十进制数值,加起来就行。
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    string base = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    
    int main(){
    	string s; int k;
    	while(cin>>s>>k){
    		int ok = 1;
    		if(k>16||k<2){cout<<"Error!\n";continue;}
    		for(int i = 0; i < s.size(); i++){
    			if(!(s[i]>='A'&&s[i]<='F' || s[i]>='a'&&s[i]<='f' || s[i]>='0'&&s[i]<='9'))ok = 0;
    			if(toupper(s[i])>=base[0+k]){ok = 0;}
    		}
    		if(!ok){cout<<"Error!\n";continue;}
    		int ans = 0;
    		for(int i = 0; i < s.size(); i++){
    			ans *= k;
    			if(isupper(s[i]))ans += s[i]-'A'+10;
    			else if(islower(s[i]))ans += s[i]-'a'+10;
    			else ans += s[i]-'0';
    		}
    		cout<<ans<<"\n";
    	}
    	return 0;
    }
    
    
    展开全文
  • R进制转十进制

    2021-03-30 06:51:36
    R进制转十进制使用安全展开法 操作方式:将R进制的每一位数值用R^k形式表示,即幂的底数是R,指数是k,k与该位和小数点之间的距离有关。 当该位位于小数点左边,k值是该位与小数点之间数码的个数,而当该位位于...
  • r进制转换

    2021-06-06 22:10:47
    我们的编码经常会遇到如何进行进制之间的转换,那么我们如何快速地将进制转换并且存贮呢? 代码如下: z[num++]=n%r; n/=r; 这里,我们采用了数组对转换后的数值进行存储,其中num初始为零,为元素个数,z...
  • 进制形式转R进制形式的方法

    千次阅读 2019-09-26 21:59:39
    进制形式转R进制形式的方法 你好!这里是将十进制转化为R进制的方法。...首先以二进制为例,图的 2 也就是题目R后期转化其他进制时,可直接将2 变为其他数字。 D十进制 B二进制 O八进制 H十六进制 ...
  • 输入一个十进制数N,将它转换成R进制数输出。 Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。 Output 为每个测试实例输出转换后的数,每个输出占一行。...
  • 输入一个十进制数N,将它转换成R进制数输出。10<=R<=16的情况下,用‘A’表示10,用‘B’表示11,用‘C’表示12,用‘D’表示13,用‘E’表示14,用‘F’表示15。 输入格式 输入包含两个整数N(N<=10000...
  • 程序功能为:输入十进制整数和欲转换的进制r,将十进制转换为r进制。 编程思想为:调用函数DToR,逐位求模。若该位为大于9的数,则以字母代表(提示:大写字母’A’的ASCII码值等于65);若该位为9以下的数,则...
  • 进制R进制之间的转换

    千次阅读 2020-07-23 20:42:38
         计算机内部所有信息都用二进制(即... 由于小数部分进行进制转换时,有些小数不能精确转换成二进制,所以C语言对浮点型数与0进行相等比较时,一般写成: float num = 0.1; if (-0.000001 < num &&a
  • 进制转换(-R进制

    千次阅读 2017-03-06 10:29:40
    1004: 进制转换(-R进制) Time Limit: 1 Sec Memory Limit: 128 MB  64bit IO Format: %lld Submitted: 3 Accepted: 1 [Submit][Status][Web Board] Description  我们可以用这样的方式来表示一...
  • c语言,编程实现将任意的十进制整数转换成任意R进制数(R在2-16之间),源码如下所示: #include int main(){  void change(int num,int parseNum); char ch; do{ //声明变量,用于操作待转换的...
  • 输入一个十进制数N,把它转换成R进制数输出。 【Input】输入数据包含多个测试实例,每个测试实例包含两个整数N(int范围)和R(2<=R<=16,R<>10)。 【Ouput】为每个测试实例输出转换后的数,每个输出占...
  • 进制间之前需要的了解 1.数值间的关系(只需知道二进制和八进制) (1位二进制等于3位八进制) 二进制进制 001 01 010 02 011 03 100 04 101 05 110 06 111 07 1.1.八进制转二进制 假设:...
  • 进制小数转R进制小数,方法为乘R取整,每次乘以相应之后基数后取结果的整数部分即可。需要注意的是并非所有的十进制小数都能完全转化为R进制小数,这时就需要取近似值。 例: 0.9032D转化成16进制小数 0.9032*16=...
  • r进制转换成十进制数ans ll change1(int r,string s)//r进制数转十进制数 { ll len=0,ans=0; while(s.length()!=len) { ans=ans*r; if(s[len]>='A'&&s[len]<='Z') ans=ans+s[...
  • 后一道编程题>>> ...当前编程题:实验二 进制转换问题(16级) -...一行,包含一个R进制表示的正整数a和进制R,a的十进制表示的范围是(0-65536),1 输出形式 一行,a的十进制表示 样例输入 11 2 样例输出 3
  • 顺序栈实现十进制转成R进制

    千次阅读 2016-11-19 12:48:09
    利用顺序栈实现十进制整数转换转换成r进制 1、算法思想 将十进制数N转换为r进制的数,其转换方法利用辗转相除法,以N=3456,r=8为例转换方法如下: N N / 8 (整除) N % 8(求余) 3456 432 0
  • pascal二进制_R进制

    千次阅读 2014-06-02 17:16:32
    任意进制转十进制会吗,参考算法(按权值展开计算): ...s:R进制(字符串类型) a:权值 a:=1; for i:=length(s) downto 1 do begin if s[i] in ['0'..'9'] then m:=m+(ord(s[i])-48)*a else m:=m+(ord
  • “输入十进制整数和欲转换的进制r,将十进制转换为r进制数(r>=2)” 这是学校的python课的第七次上机题,我们这一届是第一届开python课的。可以看出老师也是下了功夫的,基本上网上找不到一样的题目。 ...
  • 当前编程题:实验二 进制转换问题(16级) ---十进制R进制 1. 问题描述 把一个十进制正整数转化成R进制 输入形式 输入只有一行,包含两个整数a,R。a表示十进制整数,R表示需要转换的进制。1 ...
  • 此程序是用栈来完成进制的转换,有栈的结构体的构造,该程序是用将十进制任意转换成其他进制,但只限于整数
  • 进制

    2019-04-21 17:03:47
    1. R进制数转换成十进制数 任何一个R进制数转换成十进制数时,只要“按权展开”即可。 2. 十进制数转换成R进制数 任何一个十进制数转换成R进制数时,要将整数和小数部分分别进行转换。 (1)整数部分的转换 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 539,061
精华内容 215,624
关键字:

在r进制中