各种进位制转换

在数字后面加上不同的字母来表示不同的进位制。B(Binary)表示二进制,O(Octal)表示八进制,D(Decimal)或不加表示十进制,H(Hexadecimal)表示十六进制。

例如:(101011)B=(53)O=(43)D=(2B)H

  • 二进制 → 十进制

  方法:二进制数从低位到高位(即从右往左)计算,第0位的权值是2的0次方,第1位的权值是2的1次方,第2位的权值是2的2次方,依次递增下去,把最后的结果相加的值就是十进制的值了。

  例:将二进制的(101011)B转换为十进制的步骤如下:

1. 第0位 1 x 2^0 = 1;

2. 第1位 1 x 2^1 = 2;

3. 第2位 0 x 2^2 = 0;

4. 第3位 1 x 2^3 = 8;

5. 第4位 0 x 2^4 = 0;

6. 第5位 1 x 2^5 = 32;

7. 读数,把结果值相加,1+2+0+8+0+32=43,即(101011)B=(43)D。

八进制 → 十进制

方法:八进制数从低位到高位(即从右往左)计算,第0位的权值是8的0次方,第1位的权值是8的1次方,第2位的权值是8的2次方,依次递增下去,把最后的结果相加的值就是十进制的值了。

  八进制就是逢8进1,八进制数采用 0~7这八数来表达一个数。

  例:将八进制的(53)O转换为十进制的步骤如下:

1. 第0位 3 x 8^0 = 3;

2. 第1位 5 x 8^1 = 40;

3. 读数,把结果值相加,3+40=43,即(53)O=(43)D。

  • 十六进制 → 十进制

  方法:十六进制数从低位到高位(即从右往左)计算,第0位的权值是16的0次方,第1位的权值是16的1次方,第2位的权值是16的2次方,依次递增下去,把最后的结果相加的值就是十进制的值了。

  十六进制就是逢16进1,十六进制的16个数为0123456789ABCDEF。

  例:将十六进制的(2B)H转换为十进制的步骤如下:

1. 第0位 B x 16^0 = 11;

2. 第1位 2 x 16^1 = 32;

3. 读数,把结果值相加,11+32=43,即(2B)H=(43)D。

  • 十进制 → 二进制

  方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。

  例:将十进制的(43)D转换为二进制的步骤如下:

1. 将商43除以2,商21余数为1;

2. 将商21除以2,商10余数为1;

3. 将商10除以2,商5余数为0;

4. 将商5除以2,商2余数为1;

5. 将商2除以2,商1余数为0;

6. 将商1除以2,商0余数为1;

7. 读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,101011,即(43)D=(101011)B。

  • 十进制 → 八进制

  方法:除8取余法,即每次将整数部分除以8,余数为该位权上的数,而商继续除以8,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数起,一直到最前面的一个余数。

  例:将十进制的(796)D转换为八进制的步骤如下:

1. 将商796除以8,商99余数为4;

2. 将商99除以8,商12余数为3;

3. 将商12除以8,商1余数为4;

4. 将商1除以8,商0余数为1;

5. 读数,因为最后一位是经过多次除以8才得到的,因此它是最高位,读数字从最后的余数向前读,1434,即(796)D=(1434)O。

  • 十进制 → 十六进制

  方法1:除16取余法,即每次将整数部分除以16,余数为该位权上的数,而商继续除以16,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数起,一直到最前面的一个余数。

  例:将十进制的(796)D转换为十六进制的步骤如下:

1. 将商796除以16,商49余数为12,对应十六进制的C;

2. 将商49除以16,商3余数为1;

3. 将商3除以16,商0余数为3;

4. 读数,因为最后一位是经过多次除以16才得到的,因此它是最高位,读数字从最后的余数向前读,31C,即(796)D=(31C)H。

  • 二进制 → 八进制

  方法:取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。如果向左(向右)取三位后,取到最高(最低)位时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位。

  例:将二进制的(11010111.0100111)B转换为八进制的步骤如下:

1. 小数点前111 = 7;

2. 010 = 2;

3. 11补全为011,011 = 3;

4. 小数点后010 = 2;

5. 011 = 3;

6. 1补全为100,100 = 4;

7. 读数,读数从高位到低位,即(11010111.0100111)B=(327.234)O。

二进制与八进制编码对应表:


二进制


八进制


000


0


001


1


010


2


011


3


100


4


101


5


110


6


111


7

  • 八进制 → 二进制

  方法:取一分三法,即将一位八进制数分解成三位二进制数,用三位二进制按权相加去凑这位八进制数,小数点位置照旧。

  例:将八进制的(327)O转换为二进制的步骤如下:

1. 3 = 011;

2. 2 = 010;

3. 7 = 111;

4. 读数,读数从高位到低位,011010111,即(327)O=(11010111)B。

  • 二进制 → 十六进制

  方法:取四合一法,即从二进制的小数点为分界点,向左(向右)每四位取成一位,接着将这四位二进制按权相加,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的十六进制数。如果向左(向右)取四位后,取到最高(最低)位时候,如果无法凑足四位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足四位。

  例:将二进制的(11010111)B转换为十六进制的步骤如下:

1. 0111 = 7;

2. 1101 = D;

3. 读数,读数从高位到低位,即(11010111)B=(D7)H。

  • 十六进制 → 二进制

  方法:取一分四法,即将一位十六进制数分解成四位二进制数,用四位二进制按权相加去凑这位十六进制数,小数点位置照旧。

  例:将十六进制的(D7)H转换为二进制的步骤如下:

1. D = 1101;

2. 7 = 0111;

3. 读数,读数从高位到低位,即(D7)H=(11010111)B。

  • 八进制 → 十六进制

  方法:将八进制转换为二进制,然后再将二进制转换为十六进制,小数点位置不变。

  例:将八进制的(327)O转换为十六进制的步骤如下:

1. 3 = 011;

2. 2 = 010;

3. 7 = 111;

4. 0111 = 7;

5. 1101 = D;

6. 读数,读数从高位到低位,D7,即(327)O=(D7)H。

  • 十六进制 → 八进制

  方法:将十六进制转换为二进制,然后再将二进制转换为八进制,小数点位置不变。

  例:将十六进制的(D7)H转换为八进制的步骤如下:

1. 7 = 0111;

2. D = 1101;

3. 0111 = 7;

4. 010 = 2;

5. 011 = 3;

6. 读数,读数从高位到低位,327,即(D7)H=(327)O。

时间: 2024-10-13 18:13:04

各种进位制转换的相关文章

高精度进位制转换,Poj(1220)

转自ACdream. #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAXSIZE 60000 char in[MAXSIZE]; int oldbase,newbase; int a[MAXSIZE],b[MAXSIZE],r[MAXSIZE]; int getNum(char c) { if(c >= '0' && c <= '9') return c

进制转换与原码补码

进制也就是进位制,是人们规定的一种进位方法. 我们先来回想一下生活中的十进制: (1) 数码: 指集合论中刻画任意集合所含元素数量多少的一个概念 十进制的基本符号是:0.1.2.3.4.5.6.7.8.9:我们把这些称为十进制的数码:也就是基本符号,所有的十进制都是有这十个数码组成的.每位在加时都是"逢十进一". (2) 位权: 数制中每一固定位置对应的单位值称为位权 那么大家考虑一个问题,说一个十进制数,已知第四位是5,其它位都是0,那么这个数是几?答案:5000,怎么算的是5*10

原理之一,进制转换

原理之一,进制转换 日常生活中采用个数字都是十进制,而计算机采用的是运算更简单.易实现且可靠,为逻辑设计提供了有力途经的二进制,除此之外还有八进制和十六进制作为二进制的缩写. 进制:逢N进一,N是每种进位计数制表示一位数所需要的符号数目为基数. 二进制:逢二进一,借一当二,包含的数字(0.1) 八进制:逢八进一,借八当一,包含(0.1.2.3.4.5.6.7) 十六进制:逢十六当一,以一当十六,包含(0.1.2.3.4.5.6.7.8.9.10(A).11(B).12(C).13(D).14(E

2~62位任意进制转换(c++)

进制转换的符号表为[0-9a-zA-Z],共61个字符,最大可表示62进制. 思路是原进制先转换为10进制,再转换到目标进制. 疑问: 对于负数,有小伙伴说可以直接将符号丢弃,按照整数进行进位转换,最后再将负号补回来,我认为这种做法是不对的. 正确的做法是:考虑好按照16位(short)还是32位(int)抑或64位(long long),先求出二进制补码(这时候就正负数就统一了),将二进制数转换为十进制后在转换为其他进制(如果有小伙伴知道如何直接将二进制转换为任意进制的方法可以留言告诉我,不胜

SQL Server 进制转换函数

一.背景 前段时间群里的朋友问了一个问题:“在查询时增加一个递增序列,如:0x00000001,即每一个都是36进位(0—9,A--Z),0x0000000Z后面将是0x00000010,生成一个像下面的映射表“: (Figure1:效果图) 二.十进制转换为十六进制 在网上有很多资料关于使用SQL语句把十进制转换为十六进制的资料,比如: --方式1 SELECT CONVERT(VARBINARY(50), 23785) 执行返回值为0x00005CE9,但是需要注意的是,这本应该返回二进制的

第一节课:进制转换

一.数制 计算机中采用的是二进制,因为二进制互有运算简单,易实现且可靠,为逻辑设计提供了有利的途径.节省设备等优点 ,为了便于描述,又常用八.十六进制作为二进制的缩写.一般技术都采用进位计数:其特点是: (1)逢N进一,N是每种计数制表示一位数所需要的符号数目为基数. 二进制:逢二进一,借一当二 八进制:逢八进一,借一当八 十六进制:逢十六进一,借一当十六 (2)数制转换:不同进位数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如果相等,则两数的整数和分数部分一定分别相等的原则进行的

进制转换、基础语音、语句的总结与练习

C#阶段总结 一.进制转换 计算机中采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径.节省设备等优点. 我们常用的进制还有八进制.十进制.十六进制,其特点是: (1)逢N进一  N是每种进位计数制表示一位数所需要的符号数目为基数. 二进制:逢二进一,借一当二 八进制:逢八进一,借一当八 十六进制:逢十六进一,借一当十六 (2)数制转换  不同进位计数制之间的转换原则:不同进位制之间的转换是根据两个有理数如相等,则两数的整数部分和分数部分一定分别相等的原则进行的.也

codevs 进制转换类型x

进制转换 1.计算机中采用二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供有利途径.节省设备等优点,为了便于描述,又长用八.十六进制作为二进制的缩写,一般技术都采用进位计数,其特点: (1)逢N进一,N是每种进位计数制表示一位数所需要符号数目为基数. 二进制:逢二进一,借一当二 八进制:逢八进一,借一当八 十六进制:........ (2)数制转换 不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别相等的原则进行的,若转换前两

【搬砖】安卓入门(2)- Java开发编程基础--进制转换和运算符

02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 字符串常量        用双引号括起来的内容 整数常量        所有整数 小数常量        所有小数 字符常量        用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号 布尔常量        较为特殊,只有true和false 空常量        null(数组