十进制转任意进制的通用办法

合集下载

任意进制数转换

任意进制数转换

任意进制数的转换将一个无符号整数转换为任意d进制数(2<D<16), 实质是将十进制数转换为2,3,4,5............14,15,16数。

一、十进制二进制的相互转换1.十进制转换为二进制十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。

(1)十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法。

具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

例如:302转化成二进制302/2 = 151 余0151/2 = 75 余175/2 = 37 余137/2 = 18 余118/2 = 9 余09/2 = 4 余14/2 = 2 余02/2 = 1 余0故二进制为100101110(2)十进制小数转换为二进制小数十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。

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

十进制小数转二进制数:"乘以2取整,顺序输出"例:(0.625 ) D = (0.101)B0.625 * 2 = 1.25 取 10.25 * 2 = 0.5 取 00.5 * 2 =1.0 取 1例:(0.7)D =(0.1 0110 0110)B0.7 * 2 = 1.4 取10.4 * 2 = 0.8 取 00.8 * 2 = 1.6 取 10.6 * 2 = 1.2 取 10.2 * 2= 0.4 取 0然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

进制的转换公式

进制的转换公式

进制的转换公式进制是数学中的一个重要概念,指的是在数值表示中所使用的基数。

在我们日常生活中,最常见的进制就是十进制。

但是,在计算机科学、电子工程等领域,二进制、八进制、十六进制也是非常常用的进制形式。

因此,掌握进制的转换公式对我们进行数字运算、数据存储等都非常重要。

一、十进制转二进制在十进制数A下,假设A可以被2的n次方除尽,则将A除以2,记录下余数,再将商继续除以2,直到商为0,将所得余数倒序排列,即可得到A的二进制数。

例如,将十进制数68转化为二进制数,过程如下:68÷2 = 34 034÷2 = 17 017÷2 = 8 (1)8÷2 = 4 04÷2 = 2 02÷2 = 1 01÷2 = 0 (1)所以68的二进制数为1000100。

二、十进制转八进制将十进制数除以8,将所得余数反向排列,得到该数的八进制数。

例如,将十进制数79转化为八进制数,过程如下:79÷8 = 9 (7)9÷8 = 1 (1)1÷8 = 0 (1)所以79的八进制数为117。

三、十进制转十六进制将十进制数除以16,将所得余数反向排列,如果余数为10~15,则用对应的字母A~F表示,依次类推,得到该数的十六进制数。

例如,将十进制数267转化为十六进制数,过程如下:267÷16 = 16········11(H)16÷16 = 1 01÷16 = 0 (1)所以267的十六进制数为10B。

四、二进制转十进制将二进制数从右往左依次乘上2的0次幂、1次幂、2次幂、3次幂……得到的结果再求和,即可得到该数的十进制数。

例如,将二进制数101101转化为十进制数,过程如下:1×1 + 0×2 + 1×4 + 1×8 + 0×16 + 1×32 = 45所以101101的十进制数为45。

不同进制数据的相互转换原理

不同进制数据的相互转换原理

不同进制数据的相互转换原理
在计算机科学中,不同进制数据的相互转换原理是基于数制的概念。

数制是表示数字的方式,它由一个基和一组数字符号组成。

最常见的数制是十进制,它使用的基数是10,所以可以
使用0到9这10个数字符号来表示任意数字。

不同进制之间的转换原理如下:
1. 十进制转其他进制:
- 将十进制数除以目标进制的基,取余数作为该位的数字符号,直到商为零为止。

- 将得到的余数按照从最后一位到第一位的顺序排列,就是
转换后的结果。

2. 其他进制转十进制:
- 将给定进制的每一位的数字符号与对应的进制基的幂相乘,再相加,即可得到对应的十进制数。

3. 其他进制之间的转换:
- 先将给定进制的数转换为十进制数,然后再将十进制数转
换为目标进制的数。

在进行进制转换时,需要注意一些特殊情况,例如:
- 对于八进制和十六进制,可以使用二进制与十进制之间的转
换作为中间步骤,因为八进制和十六进制都是二进制的简化表示方式。

- 当转换为二进制时,可以将十进制数的每一位转换为四位的
二进制数,其中前导零可以省略。

总之,不同进制数据的相互转换原理是将给定进制的数转换为十进制数再转换为目标进制的数,或者直接通过除以基数和取余数来进行转换。

十进制转任意进制的通用方法

十进制转任意进制的通用方法

十进制转任意进制的通用方法集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-十进制转任意进制的通用方法是:除x取余倒排法(x代表进制数)。

如:将十进制数76转换成任意进制1.转成二进制76 / 2 0= 38 / 2 0= 19 / 2 (1)= 9 / 2 (1)= 4 / 2 0= 2 / 2 0= 1 / 2 (1)76(10) = 1001100(2)2.转成八进制76 / 8 (4)= 9 / 8 (1)= 1 / 8 (1)76(10) = 114(8)3.转成十六进制76 / 16 (12)= 4 / 16 (4)76(10)=4C(16)B :二进制数。

Q :八进制数。

D :十进制数。

H :十六进制数。

对于十进制数通常不加后缀,也即十进制数后的字母 D 可省略。

( 1 )将二进制数转换成对应的十进制数将二进制数转换成对应的十进制数的方法是“按权展开求和”:利用二进制数按权展开的多项式之和的表达式,取基数为 2 ,逐项相加,其和就是对应的十进制数。

例 1 :将二进制数 1011.1 转换成对应的十进制解:1011.1B=1×2的3次方+0×2的2次方+1×2的1次方+1×2的0次方+1×2的-1次方=8+0+2+1+0.5=11.5D(2 )将二进制数转换为对应的八进制数由于 1 位八进制数对应 3 位二进制数,所以二进制数转换成八进制数时,只要以小数点为界,整数部分向左,小数部分向右每 3 位分成一组,各组用对应的 1 位八进制数字表示,即可得到对应的八进制数值。

最左最右端分组不足 3 位时,可用 0 补足。

例:将 1101101.10101B 转换成对应的八进制数。

解:所以, 1101101.10101B = 155.52Q 。

同理,用相反的方法可以将八进制数转换成对应的二进制数。

(3 )将二进制数转为对应的十六进制数由于 1 位十六进制数对应 4 位二进制数,所以二进制数转换为十六进制时,只要以小数点为界,整数部分向左,小数部分向右每 4 位分成一组,各组用对应的 1 位十六进制数字表示,即可得到对应的十六进制数值。

十进制转任意进制的通用方法

十进制转任意进制的通用方法

十进制转任意进制的通用方法是:除x取余倒排法(x代表进制数)。

如:将十进制数76转换成任意进制1.转成二进制76 / 2 0= 38 / 2 0= 19 / 2 (1)= 9 / 2 (1)= 4 / 2 0= 2 / 2 0= 1 / 2 (1)76(10) = 1001100(2)2.转成八进制76 / 8 (4)= 9 / 8 (1)= 1 / 8 (1)76(10) = 114(8)3.转成十六进制76 / 16 (12)= 4 / 16 (4)76(10)=4C(16)B :二进制数。

Q :八进制数。

D :十进制数。

H :十六进制数。

对于十进制数通常不加后缀,也即十进制数后的字母 D 可省略。

( 1 )将二进制数转换成对应的十进制数将二进制数转换成对应的十进制数的方法是“按权展开求和”:利用二进制数按权展开的多项式之和的表达式,取基数为 2 ,逐项相加,其和就是对应的十进制数。

例 1 :将二进制数 1011.1 转换成对应的十进制解:1011.1B=1×2的3次方+0×2的2次方+1×2的1次方+1×2的0次方+1×2的-1次方=8+0+2+1+0.5=11.5D(2 )将二进制数转换为对应的八进制数由于 1 位八进制数对应 3 位二进制数,所以二进制数转换成八进制数时,只要以小数点为界,整数部分向左,小数部分向右每 3 位分成一组,各组用对应的 1 位八进制数字表示,即可得到对应的八进制数值。

最左最右端分组不足 3 位时,可用 0 补足。

例:将 1101101.10101B 转换成对应的八进制数。

解:所以, 1101101.10101B = 155.52Q 。

同理,用相反的方法可以将八进制数转换成对应的二进制数。

(3 )将二进制数转为对应的十六进制数由于 1 位十六进制数对应 4 位二进制数,所以二进制数转换为十六进制时,只要以小数点为界,整数部分向左,小数部分向右每 4 位分成一组,各组用对应的 1 位十六进制数字表示,即可得到对应的十六进制数值。

各种进制的相互转换

各种进制的相互转换

各种进制的相互转换进制是计算机科学中非常重要的概念。

在计算机中,所有的数字都是以二进制的形式存储的。

二进制是一种只有0和1两个数字的进制,也被称为基数为2的进制。

除了二进制,还有很多其他的进制,如八进制、十进制、十六进制等。

不同的进制在计算机中有着不同的应用,因此我们需要学会各种进制之间的相互转换。

一、十进制转二进制十进制是我们最为熟悉的进制,它是基数为10的进制。

在计算机中,我们需要将十进制转换为二进制,才能进行计算。

十进制转换为二进制的方法是不断地除以2,直到商为0为止,将每个余数从下往上排列起来就是二进制数。

例如,将十进制数13转换为二进制数:13 ÷ 2 = 6 (1)6 ÷ 2 = 3 03 ÷ 2 = 1 (1)1 ÷ 2 = 0 (1)因此,13的二进制数为1101。

二、二进制转十进制二进制转换为十进制的方法是将每个二进制位上的数字乘以2的n次方,其中n表示这个二进制位的位数。

然后将每个乘积相加起来就是十进制数。

例如,将二进制数1101转换为十进制数:1 × 2^3 + 1 × 2^2 + 0 × 2^1 + 1 × 2^0 = 13因此,1101的十进制数为13。

三、十进制转八进制八进制是基数为8的进制。

将十进制数转换为八进制数的方法是不断地除以8,直到商为0为止,将每个余数从下往上排列起来就是八进制数。

例如,将十进制数125转换为八进制数:125 ÷ 8 = 15 (5)15 ÷ 8 = 1 (7)1 ÷ 8 = 0 (1)因此,125的八进制数为175。

四、八进制转十进制将八进制数转换为十进制数的方法是将每个八进制位上的数字乘以8的n次方,其中n表示这个八进制位的位数。

然后将每个乘积相加起来就是十进制数。

例如,将八进制数175转换为十进制数:1 × 8^2 + 7 × 8^1 + 5 × 8^0 = 125因此,175的十进制数为125。

十进制转任意进制

十进制转任意进制

⼗进制转任意进制各位亲: 下午没事就记录了⼗进制转换成其他任意进制算法完整代码实现如下,基本原理运⽤辗转相除法。

1 #include<iostream>2 #include<cstring>3 #include<string>4 #include<string.h>5 #include<stdio.h>6 #include <algorithm>7using namespace std;89string JinZhi10To2Str(int n)10 {11int i;12string temp = "";13string value = "";14 i = n;15while (i) {16//_itoa_s(i % 2,str,10);17 temp = to_string(i % 2);18 value = temp + value; //倒叙拼接19 i /= 2;20 }21return value;22 }2324string JinZhi10To8Str(int n)25 {26int i;27string value = "";28string temp = "";29 i = n;30while (i)31 {32 temp = to_string(i % 8);33 value = temp + value;34 i /= 8;35 }36return value;37 }3839string JinZhi10To16Str(int n)40 {41int i;42string value = "";43string temp = "";44 i = n;45while (i) {46int m = i % 16;47if (m >= 10) {48switch (m)49 {50case10:temp = "A"; break;51case11:temp = "B"; break;52case12:temp = "C"; break;53case13:temp = "D"; break;54case14:temp = "E"; break;55case15:temp = "F"; break;56default:57break;58 }59 value = temp + value;60 }61else {62 temp = to_string(m);63 value = temp + value;64 }65 i /= 16;66 }67return value;68 }6970string JinZhi10To32Str(int n)71 {72string value;73string tmp;7475char str[100];76for (int i = 3; i >= 0; i--)77 {78int a = 1;79switch (i)80 {81case1: a = 32; break;82case2: a = 32 * 32; break;83case3: a = 32 * 32 * 32; break;84 }8586 tmp = "";87int b = n / a;88if (b <= 0x0f)89 {9091 _itoa_s(b, str, 16);92string s(&str[0], &str[strlen(str)]);93 transform(s.begin(), s.end(), s.begin(), ::toupper);//转换成⼤写字母94//transform(str.begin(), str.end(), str.begin(), ::tolower); //转换成⼩写字母95 tmp = s;9697//tmp = to_string(b);//可以直接将整型转换成字符串类型包含于#include<string> 9899#if 0100 tmp.format("%x", b); //mfc中格式化16进制输出101#endif102103 }104else105 {106// g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v107switch (b)108 {109case16:tmp = "G"; break;110case17:tmp = "H"; break;111case18:tmp = "J"; break;112case19:tmp = "K"; break;113case20:tmp = "L"; break;114case21:tmp = "M"; break;115case22:tmp = "N"; break;116case23:tmp = "P"; break;117case24:tmp = "R"; break;118case25:tmp = "S"; break;119case26:tmp = "T"; break;120case27:tmp = "V"; break;121case28:tmp = "W"; break;122case29:tmp = "X"; break;123case30:tmp = "Y"; break;124case31:tmp = "Z"; break;125default:tmp = ""; break;126 }127 }128 value += tmp;129 n %= a;130 }131return value;132 }133134string JinZhi10To32Str_1(int n)135 {136int i;137string value = "";138string temp = "";139 i = n;140while (i) {141int m = i % 32;142if (m >= 10) {143switch (m)144 {145case10:temp = "A"; break;146case11:temp = "B"; break;147case12:temp = "C"; break;148case13:temp = "D"; break;149case14:temp = "E"; break;150case15:temp = "F"; break;151case16:temp = "G"; break;152case17:temp = "H"; break;153case18:temp = "I"; break;154case19:temp = "J"; break;155case20:temp = "K"; break;156case21:temp = "L"; break;157case22:temp = "M"; break;158case23:temp = "N"; break;159case24:temp = "O"; break;160case25:temp = "P"; break;161case26:temp = "Q"; break;162case27:temp = "R"; break;163case28:temp = "S"; break;164case29:temp = "T"; break;165case30:temp = "U"; break;166case31:temp = "V"; break;167default:168break;169 }170 value = temp + value;171 }172else {173 temp = to_string(m);174 value = temp + value;175 }176 i /= 32;177 }178return value;179 }180181int main()182 {183int m,temp;184while (true) {185 cout << endl << " * * * * * * * * 进制转换 * * * * * * * *" << endl;186 cout << " * *" << endl;187 cout << " * 1、10进制转2进制 *" << endl;188 cout << " * *" << endl;189 cout << " * 2、10进制转8进制 *" << endl;190 cout << " * *" << endl;191 cout << " * 3、10进制转16进制 *" << endl;192 cout << " * *" << endl;193 cout << " * 4、10进制转32进制(i,o,u,v除外) *" << endl;194 cout << " * *" << endl;195 cout << " * 5、10进制转32进制 *" << endl;196 cout << " * *" << endl;197 cout << " * * * * * * * * * * * * * * * * * * * **" << endl << endl;198 cout << " 请选择:";199 cin >> m;200switch (m)201 {202case1:203 cout << "⼗进制数:";204 cin >> temp;205 cout << temp << "转换成2进制:" << JinZhi10To2Str(temp) << endl << endl; 206break;207case2:208 cout << "⼗进制数:";209 cin >> temp;210 cout << temp << "转换成8进制:" << JinZhi10To8Str(temp) << endl << endl; 211break;212case3:213 cout << "⼗进制数:";214 cin >> temp;215 cout << temp << "转成16进制:" << JinZhi10To16Str(temp) << endl << endl; 216break;217case4:218 cout << "⼗进制数:";219 cin >> temp;220 cout << temp << "转换成32进制:" << JinZhi10To32Str(temp) << endl << endl; 221break;222case5:223 cout << "⼗进制数:";224 cin >> temp;225 cout << temp << "转换成32进制:" << JinZhi10To32Str_1(temp) << endl << endl; 226break;227default:228 cout << "只能在1-6中选择" << endl;229break;230 }231 }232 }233234235#if 0236237 #include<cstdio>238 #include<cstdlib>239int main()240 {241int num = 32;242char str[100];243 _itoa_s(num, str, 32); //c++中⼀般⽤_itoa,⽤itoa也⾏,244 printf("%s\n", str);245return0;246 }247248249 #include<iostream>250using namespace std; 251void main()252 {253int n, i, j = 0;254int a[1000];255 cin >> n;256 i = n;257while (i)258 {259 a[j] = i % 2;260 i /= 2;261 j++;262263 }264for (i = j - 1; i >= 0; i--) 265 cout << a[i];266 cout << endl;267 }268#endif运⾏截图:。

各进制之间的转换方法及表格

各进制之间的转换方法及表格

各进制之间的转换方法及表格进制之间的转换方法及表格:在计算机科学和数学领域中,进制是使用不同的基数来表示数字的一种方法。

常见的进制包括二进制、八进制、十进制和十六进制。

在这些进制之间进行转换非常重要,因为不同的进制在不同的场景中具有不同的优势和适用性。

下面我将详细介绍各种进制之间的转换方法,并提供一个表格以方便参考。

1.二进制转换为十进制:-方法:将二进制数每一位与2的幂相乘,然后求和。

2.十进制转换为二进制:-方法:使用短除法将十进制数连续除以2,直到商为0为止,然后依次取所得余数,从最后一个除数开始。

3.十进制转换为八进制:-方法:使用短除法将十进制数连续除以8,直到商为0为止,然后依次取所得余数,从最后一个除数开始。

-示例:将十进制数219转换为八进制数:219÷8=27余3,27÷8=3余3,3÷8=0余3、所以219的八进制表示为3334.八进制转换为十进制:-方法:将八进制数每一位与8的幂相乘,然后求和。

-示例:将八进制数333转换为十进制数:(3*8^2)+(3*8^1)+(3*8^0)=2195.十进制转换为十六进制:-方法:使用短除法将十进制数连续除以16,直到商为0为止,然后依次取所得余数,从最后一个除数开始。

十六进制中的10到15分别用字母A到F表示。

-示例:将十进制数255转换为十六进制数:255÷16=15余15,15÷16=0余15、所以255的十六进制表示为FF。

6.十六进制转换为十进制:-方法:将十六进制数每一位与16的幂相乘,然后求和。

十六进制中的A到F分别用数字10到15表示。

-示例:将十六进制数3FF转换为十进制数:(3*16^2)+(15*16^1)+(15*16^0)=1023下面是一个表格,展示了各种进制之间的转换方法和示例:进制转换,二进制,十进制,八进制,十六进制---------,----------,-------,-------,---------十进制转二进制,/,47,/,/十进制转八进制,/,219,333,/八进制转十进制,/,333,/,/十进制转十六进制,/,255,/,FF十六进制转十进制,/,3FF,/,/通过上述的转换方法和表格,我们可以在不同的进制之间进行转换,进而满足不同场景下对数据的需求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

十进制转任意进制的通用方法是:除x取余倒排法(x代表进制数)。

如:将十进制数76转换成任意进制
1.转成二进制
76/2 0
=38/2 0
=19/2 (1)
=9/2 (1)
=4/2 0
=2/2 0
解:
由于1位八进制数对应3位二进制数,所以二进制数转换成八进制数时,只要以小数点为界,整数部分向左,小数部分向右每3位分成一组,各组用对应的1位八进制数字表示,即可得到对应的八进制数值。

最左最右端分组不足3位时,可用0补足。

例:将1101101.10101B转换成对应的八进制数。

解:
所以,1101101.10101B=155.52Q。

同理,用相反的方法可以将八进制数转换成对应的二进制数。

(3)将二进制数转为对应的十六进制数
由于1位十六进制数对应4位二进制数,所以二进制数转换为十六进制时,只要以小数点为界,整数部分向左,小数部分向右每4位分成一组,各组用对应的1位十六进制数字表示,即可得到对应的十六进制数值。

两端的分组不足4位时,用0补足。

例:将1101101.10101B转换成对应的十六进制数
解:
所以1101101.10101B=6D.8AH。

同理,用相反的方法可以将十六进制数转换成对应的二进制数。

计算机中常用的数的进制主要有:二进制、八进制、十六进制,学习计算机要对其有所了解。

2进制,用两个阿拉伯数字:0、1;
8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;
10进制,用十个阿拉伯数字:0到9;
16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。

字母不区分大小写。

以下简介各种进制之间的转换方法:
一、二进制转换十进制
1011=8+2+1=11(由于10为A,所以11即B)
结果为:5BB
四、二进制数转换为十进制数
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
所以,设有一个二进制数:01100100,转换为10进制为:
计算:0*20+0*21+1*22+0*23+0*24+1*25+1*26+0*27=100
五、八进制数转换为十进制数
八进制就是逢8进1。

八进制数采用0~7这八数来表达一个数。

八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……
所以,设有一个八进制数:1507,转换为十进制为:
计算:7*80+0*81+5*82+1*83=839
结果是,八进制数1507转换成十进制数为839
六、十六进制转换十进制
例:2AF5换算成10进制
直接计算就是:5*160+F*161+A*162+2*163=10997
(别忘了,在上面的计算中,A表示10,而F表示15)、
现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。

相关文档
最新文档