精华内容
下载资源
问答
  • 二进制数到十六进制数的转换 基本原理:由于十六进制数基数是2的次幂,所以一个二进制转换为十六进制,如果是整数,只要从它的低位到高位每4位组成一组,然后将每组二进制数所对应的数用十六进制表示出来。...
  • 二进制的加法运算和乘法运算公式都各有条规则加法有0+0=00+1=1,1+011110乘法有0*0=00*1=0 1*0=0 1*1=1而十进制的加法和乘法运算公式从00开始到99从0*0开始到9*9各需规则100条。...

     

    1二进制数和十进制数换算对照表


     

    采用“二进制数”的算术运算也比较简单制造成本更经济。二进制的加法运算
    和乘法运算公式都各有四条规则加法有0+0=00+1=1,1+011110
    乘法有0*0=00*1=0 1*0=0 1*1=1而十进制的加法和乘法运算公式从0
    0开始到99从0*0开始到9*9各需规则100条。

    2:二进制代码
    电子计算机中的数是用二进制表示的在计算机中也采用二进制代码表示字
    母、数字字符、各种各样的符号、汉字等。在处理信息的过程中可将若干位的
    二进制代码组合起来表示各种各样的信息。但由于二进制数不直观人们在计算
    机上实际操作时输入、输出的数使用十进制而具体转换成二进制编码的工作
    则由计算机软件系统自动完成。
    字母和各种字符在计算机中的传输普遍采用Ascll码
    American Standard Code For lnformation lnterchange即美国标准信息交
    换码它用了7位二进制数来表达字母和各种常用字符见附录。
    对于汉字信息的表示比较复杂我国有汉字几万个常用的汉字也有7000
    多个为了统一我国制定了汉字编码标准规定了一、二级汉字共6763个
    用两个字节16位二进制代码来表示一个汉字
    进制转二进制
    用2辗转相除至结果为1
    将余数和最后的1从下向上倒序写 就是结果
    例如302
    302/2 = 151 余0
    151/2 = 75 余1
    75/2 = 37 余1
    37/2 = 18 余1

    18/2 = 9 余0
    9/2 = 4 余1
    4/2 = 2 余0
    2/2 = 1 余0
    故二进制为100101110

    二进制转十进制
    从最后一位开始算依次列为第0、1、2...位
    第n位的数0或1乘以2的n次方

     

    转载于:https://www.cnblogs.com/CY001/p/6732850.html

    展开全文
  • (三) (二进制) ↔ (八、十六进制) () (八进制) ↔ (十六进制) .扩展阅读  之前使用SQL把十进制的整数转换为三十六进制,SQL代码请参考:SQL Server 进制转换函数,其实它是基于二、八、十、十六...

    目录

    三.进制转换算法(Convert)

    (一) (二、八、十六进制) → (十进制)

    (二) (十进制) → (二、八、十六进制)

    (三) (二进制) ↔ (八、十六进制)

    (四) (八进制) ↔ (十六进制)

    四.扩展阅读


     

     之前使用SQL把十进制的整数转换为三十六进制,SQL代码请参考:SQL Server 进制转换函数,其实它是基于二、八、十、十六进制转换的计算公式的,进制之间的转换是很基础的知识,但是我发现网络上没有一篇能把它说的清晰、简单、易懂的文章,所以我才写这篇文章的念头,希望能让你再也不用担心、害怕进制之间的转换了。

      下面是二、八、十、十六进制之间关系的结构图:

    wpsC01D.tmp

    (Figure1:进制关系结构图)

    下文会分4个部分对这个图进行分解,针对每个部分会以图文的形式进行讲解:

    1. (二、八、十六进制) → (十进制);
    2. (十进制) → (二、八、十六进制);
    3. (二进制) ↔ (八、十六进制);
    4. (八进制) ↔ (十六进制);

    三.进制转换算法(Convert)

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

    (一) (二、八、十六进制) → (十进制)

    wpsC01E.tmp

    (Figure2:其他进制转换为十进制)

    • 二进制 → 十进制

      方法:二进制数从低位到高位(即从右往左)计算,第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。

    (二) (十进制) → (二、八、十六进制)

    wpsC01F.tmp

    (Figure3:十进制转换为其它进制)

    • 十进制 → 二进制

      方法:除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。

    wpsC02F.tmp

    (Figure4:图解十进制 → 二进制)

    • 十进制 → 八进制

      方法1:除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。

    wpsC030.tmp

    (Figure5:图解十进制 → 八进制)

      方法2:使用间接法,先将十进制转换成二进制,然后将二进制又转换成八进制;

    wpsC031.tmp

    (Figure6:图解十进制 → 八进制)

    • 十进制 → 十六进制

      方法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。

    wpsC042.tmp

    (Figure7:图解十进制 → 十六进制)

      方法2:使用间接法,先将十进制转换成二进制,然后将二进制又转换成十六进制;

    wpsC043.tmp

    (Figure8:图解十进制 → 十六进制)

    (三) (二进制) ↔ (八、十六进制)

    wpsC044.tmp

    (Figure9:二进制转换为其它进制)

    • 二进制 → 八进制

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

    wpsC054.tmp

    (Figure10:图解二进制 → 八进制)

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

    二进制

    八进制

    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。

    wpsC055.tmp

    (Figure11:图解八进制 → 二进制)

    • 二进制 → 十六进制

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

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

    1. 0111 = 7;

    2. 1101 = D;

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

    wpsC056.tmp

    (Figure12:图解二进制 → 十六进制)

    • 十六进制 → 二进制

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

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

    1. D = 1101;

    2. 7 = 0111;

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

    wpsC057.tmp

    (Figure13:图解十六进制 → 二进制)

    (四) (八进制) ↔ (十六进制)

    wpsC058.tmp

    (Figure14:八进制与十六进制之间的转换)

    • 八进制 → 十六进制

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

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

    1. 3 = 011;

    2. 2 = 010;

    3. 7 = 111;

    4. 0111 = 7;

    5. 1101 = D;

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

    wpsC069.tmp

    (Figure15:图解八进制 → 十六进制)

    • 十六进制 → 八进制

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

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

    1. 7 = 0111;

    2. D = 1101;

    3. 0111 = 7;

    4. 010 = 2;

    5. 011 = 3;

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

    wpsC06A.tmp

    (Figure16:图解十六进制 → 八进制)

    四.扩展阅读

      1. 包含小数的进制换算:

    (ABC.8C)H=10x16^2+11x16^1+12x16^0+8x16^-1+12x16^-2

    =2560+176+12+0.5+0.046875

    =(2748.546875)D

      2. 负次幂的计算:

    2^-5=2^(0-5)=2^0/2^5=1/2^5

    同底数幂相除,底数不变,指数相减,反过来

    3. 我们需要了解一个数学关系,即23=8,24=16,而八进制和十六进制是用这关系衍生而来的,即用三位二进制表示一位八进制,用四位二进制表示一位十六进制数。接着,记住4个数字8、4、2、1(23=8、22=4、21=2、20=1)。

     

    reference:

    https://www.cnblogs.com/gaizai/p/4233780.html

    展开全文
  • 、 将格雷码转换为二进制 1. 将格雷码转换为二进制 2. 根据条件递增二进制值 3. 将二进制转换为格雷码 4. 将计数器的最终格雷码保存至寄存器中 、由格雷码转换为二进制 公式 例:将格雷码转换为相等的二进制数 ...

    数字电路基础知识——格雷码和二进制码的转换的算法和Verilog实现

    关于数字电路中的码制问题在这篇博客中已经做了详细分析,
    数字电路基础知识——数字IC中的进制问题(原码,反码,补码以及各进制的转换)
    这篇博客会再次详细分析一下数字IC设计中关于 格雷码(Gray Code) 的问题,在数字IC设计中格雷码的使用范围很广,格雷码由于其误码率底的有点基本上每个模块都会使用到格雷码。
    近期在学习FIFO的时候碰到格雷码转换二进制码的问题。特此写这篇博客总结一下。

    一、什么是格雷码

    格雷码的每一位按照一定的顺序循环。如最右边的一位按照0110的顺序循环,右边第二位按照00111100的顺序循环。即自右向左0、1的循环数目翻倍。
    格雷码的最主要特点:各个相邻码之间仅有一位状态不同,首尾也是仅有一位状态不同。
    在这里插入图片描述

    二、为什么要用格雷码

    首先说下二进制码,在FIFO的设计中,在写请求中,写指针在写时钟作用下递增,在产生FIFO满信号时,需要将写指针和读指针进行比较,由于两个指针分别与其各自的时钟同步,但是彼此之间又是异步的关系,所以在使用二进制计数器实现指针的时候,就会出现比较的指针出现取样值错误的问题。
    如从FFF到000可能会进行如下的转换
    在这里插入图片描述
    如果此时同步时钟边沿在FFF向000转换的时候,就可能会把上面的的三位二进制数的任何取样值同步到新的时钟域,导致数据错误。
    所以采取的办法通常是使用格雷码计数
    在这里插入图片描述
    格雷码的优势在于一个数变为另一个数时,只有一位发生变化。

    三、用格雷码实现FIFO指针

    在这里插入图片描述
    如果要产生完美的FIFO空或满条件,首先需要正确的读写指针,在时钟域传递指针的最好的办法就是使用格雷码来实现指针,这种编码能够消除绝大数错误。上面是格雷码的设计流程。

    1. 将格雷码转换为二进制
    2. 根据条件递增二进制值
    3. 将二进制转换为格雷码
    4. 将计数器的最终格雷码保存至寄存器中
    四、由格雷码转换为二进制
    1. 公式
      格雷码的转换公式:(i < n-1)
      在这里插入图片描述
      计数器的位编号如下:
      MSB: Most Significant Bit的缩写,指最高有效位
      LSB: Least Significant Bit,指最低有效位
      在这里插入图片描述
    2. 例:将格雷码转换为相等的二进制数(@表示异或xor)
      i = 3,
      bin3=gray3 = gray[3] = 1
      i = 2,
      bin2 = gray2 @ bin3 = gray2 @ gray3 = gray[2] @ gray[3] = 1
      i = 1,
      bin1 = gray1 @ bin2 = gray1 @ gray2 @ gray3 = gray[1] @gray[2] @gray[3] = 0
      i = 0,
      bin0 = gray0 @ bin1 = gray0 @ gray1 @ gray2 @ gray3 = gray[0] @ gray[1] @ gray[2] @ gray[3] =0
      于是可以得到如下四个等式:
      在这里插入图片描述
    3. Verilog 语言描述格雷码转换为二进制码
    module gray_to_bin (bin, gray);
    parameter SIZE = 4;
    input [SIZE – 1:0] bin;
    output [SIZE – 1:0] gray;
    reg [SIZE – 1:10] bin;
    integer i;
    always @ (gray)
    for ( i = 0; i <= SIZE; i = i + 1)
    bin[i] = ^(gray >> i);  		//右移一位并按位异或
    endmodule
    
    五、由二进制码转换为格雷码
    1. 公式
      二进制向格雷码的转换公式:(i < n-1)
      在这里插入图片描述
    2. 例:将二进制转换为相等的格雷码(@表示异或xor)
      i = 3,
      gray3 = bin3 = bin[3] = 1
      i = 2,
      gray2 = bin2 @ bin3 = bin[2] @ bin[3] = 0
      i = 1,
      gray1 = bin1 @ bin2 = bin[1] @ bin[2] = 1
      i = 0,
      gray0 = bin0 @ bin1 = bin[0] @ bin[1] = 0
      于是可以得到如下四个等式:
      在这里插入图片描述
      由上式可以看出,通过逐位异或,或者将二进制码右移后与自己异或的操作方式,计算相应的格雷码,如下
      在这里插入图片描述
    3. Verilog 语言描述二进制码转换为格雷码
    module bin_to_gray (bin, gray);
    parameter SIZE = 4;
    input [SIZE-1:0] bin;
    output [SIZE-1:0] gray;
    assign gray = (bin >> 1) ^ bin;			//右移与自己异或
    endmodule
    
    六、格雷码计数逻辑的实现

    由格雷码实现FIFO指针的流程图发现

    module gray_ counter (clk, gray, inr, reset_n)
    	parameter SIZE = 4;
    	input clk, inr, reset_n;t
    	output [SIZE -1 ] gray;
    	reg [SIZE]1 ] gray_temp, gray, bin_temp, bin;
    	integer i;
    	
    	always @ (gray or inr)
    	begin:gray_bin_gray
    		for (i = 0; i<SIZE ; 1 = i +1)
    		bin[i] = ^(gray >> i); // gray to binary conversion
    		bin_temp = bin + inr; // addition in binary
    		gray_temp = bin_temp >> 1) ^ bin_temp; // binary to gray conversion
    	end
    endmodule
    

    下面的逻辑快将转换后的格雷码值寄存起来

    always @ (posedge clk or negedge reset_n)
    begin:gray_registered
    if (~reset_n)
    	gray <= {SIZE {1’b0}};
    else
    	gray <= gray_temp;
    end
    

    下图显示格雷码计数器的逻辑原理图:

    展开全文
  • 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,Y进制就是逢Y进一位。 百度百科链接 计算机中常用的机制: 二进制, 十六进制, 八进制 我们人类生活中常用的进制: 十进制 任意进制到十进制...

    进制的概念:

    进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数)。 对于任何一种进制—Y进制,就表示每一位置上的数运算时都是逢Y进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,Y进制就是逢Y进一位。

    百度百科链接

    计算机中常用的机制: 二进制, 十六进制, 八进制
    我们人类生活中常用的进制: 十进制


    任意进制到十进制的转换公式:

    公式: 系数 * 基数 的 权次幂 相加

    系数: 每一(位)上的数
    基数: 几进制就是几(二进制就是2,八进制就是8,十六进制就是16)
    权: 从数值的右则(倒数),以0为编号,逐个+1增加

    二进制到十进制的转换:
    : 0b0001 0101 (0b|0B为二进制标识):
    系数: 1 0 1 0 1
    基数: 2 (当前是二进制)
    : 从数值的右侧,以0为编号,逐个+1增加(二进制的权是从高位开始取, 二进制中 1 代表高位(理解为 “开”) , 0 代表低位 (理解为 “关”)

                         	   系数   权
                                1 --- 0
                                0 --- 1
                                1 --- 2
                                0 --- 3
                                1 --- 4
                                
                              套入公式:
                               系数 * 基数 ^ 权
                                 1 * 2 ^ 0 = 1;
                                 0 * 2 ^ 1 = 0;
                                 1 * 2 ^ 2 = 4;
                                 0 * 2 ^ 3 = 0;
                                 1 * 2 ^ 4 = 16;
    
                                 十进制结果: 1 + 0 + 4 + 0 + 16 = 21 ;
                             
    

    八进制到十进制的转换:
    : 010101 (0为八进制标识):
    系数: 1 0 1 0 1
    基数: 8 (当前是八进制)
    : 从数值的右侧,以0为编号,逐个+1增加

                         	   系数   权
                                1 --- 0
                                0 --- 1
                                1 --- 2
                                0 --- 3
                                1 --- 4
                                
                              套入公式:
                               系数 * 基数 ^ 权
                                 1 * 8 ^ 0 = 1;
                                 0 * 8 ^ 1 = 0;
                                 1 * 8 ^ 2 = 64;
                                 0 * 8 ^ 3 = 0;
                                 1 * 8 ^ 4 = 4096;
    
                                 十进制结果: 1 + 0 + 64 + 0 + 4096 = 4161 ;
                             
    

    十六进制到十进制的转换:
    : 0x10101 (0x|0X为十六进制标识):
    系数: 1 0 1 0 1
    基数: 16 (当前是十六进制)
    : 从数值的右侧,以0为编号,逐个+1增加

                         	   系数   权
                                1 --- 0
                                0 --- 1
                                1 --- 2
                                0 --- 3
                                1 --- 4
                                
                              套入公式:
                               系数 * 基数 ^ 权
                                 1 * 16 ^ 0 = 1;
                                 0 * 16 ^ 1 = 0;
                                 1 * 16 ^ 2 = 256;
                                 0 * 16 ^ 3 = 0;
                                 1 * 16 ^ 4 = 65536;
    
                                 十进制结果: 1 + 0 + 256 + 0 + 65536 = 65793 ;
                             
    

    十进制到任意进制的转换公式:

    公式: 除基取余:

    使用 十进制源数据 ,不断用 十进制源数据 除以 基数 不断的除以 基数 (几进制就是几)得到 余数 (直到 为0结束), 再将 余数 倒拼起来就是所对应转换的进制的值

    例: 十进制的 19 转换成二进制:

     			   19 / 2  商 9 余 1;
                   9 / 2 商 4 余 1;
                   4 / 2 商 2 余 0;
                   2 / 2 商 1 余 0;
                   1 / 2 商 0 余 1;
                                   余数倒拼 ==> 二进制结果就是: 0b0001 0011;
    

    例: 十进制的 69 转换成八进制:

     			   69 / 8  商 8 余 5;
                   8 / 8 商 1 余 0;
                   1 / 8 商 0 余 1;
                  
                                   余数倒拼 ==> 八进制结果就是: 0105;
    

    例: 十进制的 66 转换成十六进制:

     			   66 / 16  商 4 余 2;
                   4 / 16 商 0 余 4;
                  
                                   余数倒拼 ==> 十六进制结果就是: 0x42;
    

    例: 十进制的 59 转换成十六进制:

     			   59 / 16  商 3 余 11;
                   3 / 16 商 0 余 3;
                  
                  余数倒拼 ==> (11在十六进制中用B表示)十六进制结果就是: 0x3B;
    

    例: 十进制的 187 转换成十六进制:

     			   187 / 16  商 11 余 11;
                   11 / 16 商 0 余 11;
                  
                  余数倒拼 ==> (11在十六进制中用B表示)十六进制结果就是: 0xBB;
    

    例: 十进制的 248 转换成十六进制:

     			   248 / 16  商 15 余 8;
                   15 / 16 商 0 余 15;
                  
                  余数倒拼 ==> (15在十六进制中用F表示)十六进制结果就是: 0xF8;
    

    特殊十六进制到十进制的转换:(其实二进制和八进制也可以使用这种方式来转,反推也是可以使用这种方式十进制转任意进制的)

    公式: (最终余数 * 16 + 第二位余数 )的和 * ( 16 + 第三位余数)的和 * (16+ 第四位余数)的和 * (16 + 第五位余数的和) * …(乘以16加到没有余数为止)

    十六进制中字母对应十进制的数字 A ==> 10 , B ==> 11 , C ==> 12 , D ==> 13 , E ==> 14 , F ==> 15

    : 0xABC (0x|0X为十六进制标识):
    余数: A(10) B(11) C(12) (先把字母转换成对应的十进制数字(这里是用作余数计算) 再求实际的十进制数字)
    基数: 16 (当前是十六进制)

                     (最终余数 * 16 + 第二位余数) 的和 * 16 的积 + 第三位余数: 
                     10 * 16 = 160 + 11 = 171 
                     171 * 16 = 2736 + 12 = 2748
    
                                 十进制结果: 2748 ;
                             
    

    : 0xFC8C (0x|0X为十六进制标识):
    余数: F(15) C(12) 8 C(12) (先把字母转换成对应的十进制数字(这里是用作余数计算)再求实际的十进制数字)
    基数: 16 (当前是十六进制)

                     (最终余数 * 16 + 第二位余数) 的和 * 16 的积 + 第三位余数: 
                     15 * 16 = 240 + 12 = 252 
                     252 * 16 = 4032 + 8 = 4040
                     4040 * 16 = 64640 + 12 = 64652
    
                                 十进制结果: 64652 ;
                             
    

    : 0xABCDEF (0x|0X为十六进制标识):
    余数: A(10) B(11) C(12) D(13) E(14) F(15) (先把字母转换成对应的十进制数字(这里是用作余数计算)再求实际的十进制数字)
    基数: 16 (当前是十六进制)

                 (最终余数 * 16 + 第二位余数) 的和 * 16 的积 + 第三位余数 .....: 
                 
                     10 * 16 = 160 + 11 = 171 
                     171 * 16 = 4032 + 12 = 2748
                     2748 * 16 = 43968 + 13 = 43981
                     43981 * 16 = 703696 + 14 = 703710
                     703710 * 16 = 11259360 + 15 = 11259375
    
                                 十进制结果: 11259375 ;
                             
    

    快速进制转换法(二进制转任意进制)


    8421码:
    8421码又称为BCD码,是十进制代码中最常用的一种。在这种编码方式中,每一位二值代码的“1”都代表一个固定数值。将每位“1”所代表的二进制数加起来就可以得到它所代表的十进制数字。因为代码中从左至右看每一位“1”分别代表数字“8”“4”“2”“1”,故得名8421码。其中每一位“1”代表的十进制数称为这一位的权。因为每位的权都是固定不变的,所以8421码是恒权码。 …

    ...... 4096 2048 1024 512 256 128 64 32 16 8 4 2 1
    

    BCD:(Binary-Coded Decimal)二进制码十进制数
    在这里插入图片描述

    二进制快速转换十进制(二进制的最高位为0表示为十进制的正数,
    在这里插入图片描述
    二进制的最高位为1表示为十进制的负数
    )在这里插入图片描述
    例:

    0000 … 1111 1111 十进制的结果就是 2048 + 1024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255

              1111    1111  十进制的结果就是 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255
    

    公式:系数 * 基数 的权次幂相加

    
               1          1           1           1           1            1           1         1
       .....  128         64          32          16          8            4           2         1
            (1*2^7)       (1*2^6)     (1*2^5)     (1*2^4)     (1*2^3)     (1*2^2)    (1*2^1)   (1*2^0)
    

    可将二进制的数值直接套入其中,8421码 0所对应的值不取,1所对应的值取出后并相加

    :0b0011 0101 十进制结果就是: 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 53;

    0b0011 0101 十进制结果就是: 32 + 16 + 4 + 1 = 53;


    二进制快速转换八进制:

    技巧: 八进制:将二进制的三位看成一组,再进行转换 , 最后把8421码的结果相加拼接起来既是对应的八进制,8421码 0所对应的值不取,1所对应的值取出后并相加

    原因: 八进制逢八进一, 三个二进制位最多可以表示111, 也就是数字7, 如果出现第4位,就超出八进制的单数最大范围了!

    将十进制的60的 二进制0b111100 转换为八进制;
         2  1    4   2   1       4   2   1
         0  0    1   1   1       1   0   0
    
    
                4 + 2 + 1 = 7    4           结果为八进制的74
    

    二进制快速转换十六进制:

    技巧: 十六进制: 将二进制的四位看成一组,再进行转换 ,最后把8421码的结果相加拼接起来既是对应的十六进制,8421码 0所对应的值不取,1所对应的值取出后并相加

    原因: 十六进制逢十六进一,四个二进制位最多可以表示1111,也就是数字15,如果出现第5位,就超出十六进制的单数最大范围了!

    将十进制的60的二进制0b111000转换为十六进制
           8   4   2   1      8   4   2   1
           0   0   1   1      1   1   0   0
                      
    
    		   2 + 1 =  3     8 + 4 = C              结果为十六进制的3C
    

    八进制转换为二进制: ( 参考上面的公式 , 以十进制为中转站 )
    step 1: 先拆分数字,得到对应的十进制数
    step 2: 再把得到得到十进制数转换成二进制数,最后所得的二进制数拼接起来即可

    十六进制转换为二进制: ( 参考上面的公式 , 以十进制为中转站 )

    step 1: 先拆分数字(字母),得到对应的十进制数
    step 2: 再把得到得到十进制数转换成二进制数,最后所得的二进制数拼接起来即可

    八进制转换为十六进制 : ( 参考上面的公式 , 以十进制为中转站 )

    step 1: 先把八进制转换为十进制 ;
    step 2: 再把转换的十进制转为十六进制;

    十六进制转换为八进制 : ( 参考上面的公式 , 以十进制为中转站 )

    step 1: 先把十六进制转换为十进制 ;
    step 2: 再把转换的十进制转为八进制;


    其实,程序员也有被偷偷关心,直接使用计算器就能得到相应的进制数
    (如果在面试的时候一定有奇葩面试官一定不要你用计算器,就是上面的这些公式了 )

    win键加r 输入命令 calc (calculation) 打开计算器 选择程序员,就会看到十六进制,十进制,八进制,二进制
    在这里插入图片描述

    这篇文章对你有帮助吗?作为一名程序工程师,在评论区留下你的困惑或你的见解,大家一起来交流吧!

    展开全文
  • 进制相互转化的算法公式

    万次阅读 2017-09-04 17:24:46
    二进制:0,1 逢二进一 八进制:0-7 逢八进一,用0开头表示  十进制:0-9 逢十进一 十六进制:0-9,A-F (A :10 B:11 递增)逢十六进一,0x表示 进制转换 例如:进制数十进制  从小数点始,以0为开始数...
  • 如简单的 2进制数 100 转换为10进制数//二进制转换10进制 100=1*2^2+0*2^1+0*2^0=4 //系数为每一位的数字 如100 系数就有3个(1,0,0),1234有4个(1,2,3,4)。 //基数就是逢n进一的n,基数为几就有
  • 一、 分数统计(10) 要求:(1)输入某班级学生的姓名、分数; (2)对(1)的分数进行... 要求:(1)可输入二进制、八进制、十进制、十六进制数; (2)将已输入的数转换成其余进制的数; (3)具有输入输出界面。
  • 一、 分数统计(10) 要求:(1)输入某班级学生的姓名、分数; (2)对(1)的分数进行... 要求:(1)可输入二进制、八进制、十进制、十六进制数; (2)将已输入的数转换成其余进制的数; (3)具有输入输出界面。
  • .进制转换 十进制转二进制 计算机使用二进制数表示数值。需要将十进制数转化为二进制数进行存储和计算。...二进制转十进制采用幂加和方式,从小数点左侧第一位为0次幂,小数点左侧第二位为1次幂,以此类推。当查...
  • 2.2 整数表示(以及转换) 本节要使用到的公式/函数术语(引用原文图片) 图中的w表式二进制的位数 一....这里引用原文中的图片 ...举个例子:为了简单,使用二进制表示 无符号数[1111] = 8 + 4 + 2 + 1 ...
  • 因为6位二进制数可以表示64个不同的数,因此只要确定了字符集(含64个字符),并为其中的每个字符确定一个唯一的编码,就可以通过正向与反向映射将二进制字节转换为Base64编码或反之。编码后的长度如何确定呢 为了...
  • 给出一个ip和整数,分别转换成整数和ip,转换规则是ip每个字段转换成8为二进制数,再拼成32位的二进制数。 问题分析 ip整数,按.取各字段字符串,转化为整数,再按照a*2^24+b*2^16+c*2^8+d公式计算整数。 整数...
  • byte 常用转换

    2016-03-09 11:16:32
    1 int = 4 byte ,1 byte = 8 bit , 一个 bit 是一位二进制。i 和 0xFF 取与得到最低位的 1byte 数据,然后将 i 右移8位再与 0xFF 取与得到第二低位的 1byte数据,以此类推。```java /** * 将int转换为个字...
  • 2.6.8 DECIMAL——将给定基数的文本转换为十进制数 116 第3章 日期和时间函数 117 3.1 了解Excel日期系统 118 3.1.1 Excel提供的两种日期系统 118 3.1.2 了解日期和时间序列号 119 3.1.3 输入与设置日期和时间 ...
  •  计算总线数据传输速率    总线数据传输速率=时钟频率(Mhz)/每个总线包含的时钟周期数*每个总线周期传送的字节数(b) ... 编码量化后二进制  海明码信息位:  k=冗余码  n=信息位  2^k-1>=n+k
  • 数字电路基础

    2018-10-28 16:54:00
    题目:数制转换 R进制数转换为十进制数:按权展开,相加...二进制数转化十六进制数:位一组,整数部分左边补0,小数部分右边补0。反之亦然。 题目:逻辑函数及其化简 公式法 卡诺图法 题目:什么是冒险和竞争...
  • 11 1.1版以上支持形如'0b11010011'的二进制和形如'0x1234'的十六进制格 式数值输入 12 1.2版以上支持输入默认值,以#表示 【二 特殊运算符】 @ 注释符,本行@之后的字符不进行计算。 : 不显示在结果列表中的恒等...
  • 显示屏数字可随时转换为下列形式进行计算:十六进制、十进制、八进制、二进制、人民币中文大写形式、人民币数字形式(例如:1435.75、人民币壹仟肆佰叁拾伍圆柒角伍分、¥1435.75)。以上各种转换与计算结果可选择...
  • 我们开发一种通用方法来分析计算由开普勒后加速度引起的二进制脉冲星p发射的脉冲到达时间的变化Δp的轨道分量的扰动εp 由于质量极杆Q2以及后牛顿重力电(GE)和LenseâThirring(LT)场。 我们将结果应用到到目前...
  • C++第

    2011-01-09 22:25:00
    比如说八进制的m位数X换算十进制    result=a*8^m-1+b*8^m-2+c*8^m-3+.......+d*8^m-n(m>n) 英文字母a为第一位数,以此类推    第种:按照迭代公式来算,即将每一位数转换,然后把转换后...
  • 子网划分

    2021-04-29 19:56:08
    作用:可以将1个网段根据需求划分成若干网段 第一步:掌握十进制与二进制之间的转换 ...第步:将主机位转换成二进制,然后按照n的值向主机位借位,这里是将1个网段划分成2个网段为例 192.168.0.00000000 25...
  • 显示屏数字可随时转换为下列形式进行计算:十六进制、十进制、八进制、二进制、人民币中文大写形式、人民币数字形式(例如:1435.75、人民币壹仟肆佰叁拾伍圆柒角伍分、¥1435.75)。以上各种转换与计算结果可选择...
  • excel 工具插件增强

    2013-09-21 10:45:09
    二进制 直接在工作表上文本转二进制,二进制转文本。搜索菜单 很方便的菜单操作,搜索到的菜单可执行。捕获不到的时间 升级,增上网时间显示。修正了小数化度舍五入问题。在悬表上提取打开的所有工作簿全路径。
  • Java习题(02)

    千次阅读 2020-03-12 21:20:16
    十六进制转十进制.约瑟夫环问题五.菱形星块六.则运算七.排序八.杨辉三角九.填空9.1.计算7在字符串出现的个数9.2泰勒公式展开9.3角谷猜想 一.水仙花数 package Exercises2; //1. (10分) // // //水仙花数题目...
  • HW实习机试

    2014-03-16 18:24:29
    1 累加求和,输入 uiMin,...2 解析协议 十六进制 成十进制 主要是 位数的关系 前几个都是一位 后几个两位 最后位 输入 12 1a 00 0a 00 20 00 a1 第一个 1位 第个两位 第三个 位 3 上三角 矩阵 输入 3-20 输出
  • 2.1 次方程的意义和求根公式 2·2 二元次方程组 3.高次方程 3·1 特殊的高次方程 3·2 三次方程的解法 3·3 次方程的解法 3·4 根与系数的关系 3·5 项方程 4.方程的一般理论 4·1 三次、次方程的解法 4·...
  • 学习笔记

    2019-03-05 09:20:26
    目录 一:求一个整数的长度 :求组合数 三:快速排序 :三角函数 五:判断多边形边界曲线顺/逆时针(Green 公式) ...十: 1^3+2^3+…+ n^3求和公式 十五: 常用头文件 十六:斐波那...
  • 2.1 次方程的意义和求根公式 2·2 二元次方程组 3.高次方程 3·1 特殊的高次方程 3·2 三次方程的解法 3·3 次方程的解法 3·4 根与系数的关系 3·5 项方程 4.方程的一般理论 4·1 三次、次方程的解法 4·...
  • 1.1.4 二进制与八进制、十六进制之间的转换 1.1.5 二进制数与十进制数之间的转换 1.2 编码 1.2.1 十进制数的二进制编码 1.2.2 带符号的二进制数的编码 1.2.3 带小数点的数的编码 1.2.4 字符编码 习题 第二章 组合...

空空如也

空空如也

1 2 3 4 5 6
收藏数 102
精华内容 40
关键字:

二进制转四进制公式