精华内容
下载资源
问答
  • 十进制与二进制互转首先理解十进制如何转二进制:将十进制数据除以2直到商为0,然后将余数从下往上排序连接,即可得到该数字的二进制数。如:整数1313/2=6余16/2=3余03/2=1余11/2=0余1取13余数,倒序连接。所以13...

    一.十进制与二进制互转

      首先理解十进制如何转二进制:将十进制数据除以2直到商为0,然后将余数从下往上排序连接,即可得到该数字的二进制数。

    666a69e08cb235ed03944cf9b29a0215.png

    如:整数13

    13/2=6余1

    6/2=3余0

    3/2=1余1

    1/2=0余1

    取13余数,倒序连接。所以13转化二制为1101

    可以用转化工具测试https://tool.lu/hexconvert/

    理解十进制如何转换为二进制算法,那我们用PHP代码实现一下

    1.

    echo decbin(13)

    输出结果是1101,这种方法特别简单,但实现原理你知道么?你不知道。。。

    你不知道自己写写不就知道了么

    $tenChangetwoFun = function ($num = 0){    if($num < 2)    {        return $num;    }    $twoArr = [];    $shang = $num / 2;    $yushu = $num % 2;    array_unshift($twoArr, $yushu);    while ($shang)    {        $yushu = $shang % 2;        $shang = intval($shang / 2);        array_unshift($twoArr, $yushu);    }    return implode('', $twoArr);};echo $tenChangetwoFun(15);

    知道了十进制转二进制了,我们来聊一下二进制转化为十进制

    解释一下,解释过程非常重要,要仔细看:

    从最低位(最右)算起,位上的数字乘以本位的权重,权重就是2的第几位的位数减一次方。比如第1位:2^(1-1)=1,第22^(2-1)=2,以此类推,二进制1101,换算十进制1*2^(1-1)+0*2^(2-1)+1*2^(3-1)+1*2^(4-1)=1+0+4+8=13

    用代码实现一下:

    echo bindec(1101);

    这段代码是不是很简单,虽然简单,但我们也要知道它实现的原理,我们用php代码实现一下:

    $twoChangeTenFun = function ($twonum){    $twonum = (string)$twonum;    $len = strlen($twonum);    $twonum = strrev($twonum);    if($len < 1)    {        return 0;    }    $total = 0;    for ($i = 0; $i< $len; $i++)    {        $total += $twonum[$i]*pow(2,$i);    }    return $total;};echo $twoChangeTenFun(1101);

    以上是十进制与二进制互转,接下来讲一下十进制与八进制互转

    二.十进制转八进制

    十进制转八进制跟十进制转二进制原理一样,如图:

    05269b88d7619be1bbf38597b4007090.png

    如:整数130

    130/8=16余2

    16/8=2余0

    2/8=0余2

    取130的余数,倒序连接,得出202

    理解十进制转八进制算法,我们用php代码实现一下

    echo decoct(130);

    得出结果为202;这段代码是不是也很简单,我们理解一下它的实现原理,用php代码实现一下:

    $tenChangeeightFun = function ($num = 0){    if($num < 8)    {        return $num;    }    $eightArr = [];    $shang = $num / 8;    $yushu = $num % 8;    array_unshift($eightArr, $yushu);    while ($shang)    {        $yushu = $shang % 8;        $shang = intval($shang / 8);        array_unshift($eightArr, $yushu);    }    return implode('', $eightArr);};echo $tenChangeeightFun(130);

    惊不惊讶,刺不刺激,是不是跟上面二进制与十进制代码转化一样,对!就是一样的,可以用一套方法,传不同参数就行了。

    知道十进制怎么转八进制,来看一下八进制转十进制呢,跟二进制转十进制一样,从最低位(最右)算起,位上的数字乘以本位的权重,权重就是8的第几位的位数减一次方。比如第1位:8^(1-1)=1,第2位8^(2-1)=2,以此类推,八进制202,换算十进制2*8^(1-1)+0*8^(2-1)+2*8^(3-1)=2+0+128=130

    最简单代码:

    echo octdec(202);

    我们在用最复杂的代码实现一下,知道它的实现原理

    $eightChangeTenFun = function ($eightnum){    $eightnum = (string)$eightnum;    $len = strlen($eightnum);    $eightnum = strrev($eightnum);    if($len < 1)    {        return 0;    }    $total = 0;    for ($i = 0; $i< $len; $i++)    {        $total += $eightnum[$i]*pow(8,$i);    }    return $total;};echo $eightChangeTenFun(202);

    这段代码跟二进制转十进制一样。通过这两个转换,那十进制转十六进制与十六进制转十进制就不详细说明了。

    展开全文
  • 正整数的十进制转换二进制将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。只需记住要点:除二取余,倒序排列。由于计算机内部表示数的字节单位...

    正整数的十进制转换二进制

    将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。只需记住要点:除二取余,倒序排列。

    由于计算机内部表示数的字节单位都是定长的,以2的幂次展开,或者8位,或者16位,或者32位....。于是,一个二进制数用计算机表示时,位数不足2的幂次时,高位上要补足若干个0。

    eg: 125 转换为二进制

    二进制转换为十进制

    二进制转十进制的转换原理:从二进制的右边第一个数开始,每一个乘以2的n次方,n从0开始,每次递增1。然后得出来的每个数相加即是十进制数。

    eg:  0111 1101 转换为二进制

    从右边开始每一个乘以2的n次方,n从0开始

    0111 1101

    1   ---->    2^0        2的0次方

    0   ---->    0            因为为0,所有取0,如果为1 ,应该为2^1

    1   ---->    2^2        2的2次方

    1   ---->    2^3        2的3次方

    1   ---->    2^4        2的4次方

    1   ---->    2^5        2的5次方

    1   ---->    2^6        2的6次方

    0   ---->    0            因为为0,所有取0,如果为1 ,应该为2^7

    最后将所有项相加:1+0+4+8+16+32+64+0 = 125

    十进制转换为二进制

    十进制转二进制分为整数转二进制,和小数转二进制

    整数转二进制

    • 采用"除2取余,逆序排列"法:

    1.首先用2整除一个十进制整数,得到一个商和余数
    2.然后再用2去除得到的商,又会得到一个商和余数
    3.重复操作,一直到商为小于1时为止
    4.然后将得到的所有余数全部排列起来,再将它反过来(逆序排列),切记一定要反过来!
    • 假设我们现在需要将42转为二进制,那我们怎么做呢,如下图所示:

    75bc4b81bcb11cd0875a921cafff2926.png

    小数转二进制

    • 采用"乘2取整,顺序排列"法:

    1.用2乘十进制小数,可以得到积,将积的整数部分取出
    2.再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出
    3.重复操作,直到积中的小数部分为零,此时0或1为二进制的最后一位,或者达到所要求的精度为止
    • 例如将0.125转换为二进制:

    0.125  *  2  =  0.25 ------0

    0.25 * 2 = 0.5 ------0

    0.5 * 2 = 1.0 ------1

    当小数部分为0就可以停止乘2了然后正序排序就构成了二进制的小数部分0.001
    • 如果小数的整数部分有大于0的整数时,将整数部分和小数部分先单独转为二进制,再合在一起就可以了,例如:

    假设要将8.125 转换为二进制

    现将8转为二进制:得到1000
    再将0.125转为二进制:得到0.001

    合并后为1000.001

    二进制转换为十进制

    二进制转为十进制要从右到左用二进制的每个数去乘以2的相应次方,小数点后则是从左往右。

    如果首位是0就表示正整数,如果首位是1则表示负整数,正整数可以直接换算,负整数则需要先取反再换算。

    因为计算机内部表示数的字节单位是定长的。如8位、16位、32位。所以位数不够时,高位补零。

    • 如要想二进制00101010转为十进制,因为以0开头,所以这是正整数,计算如下所示:

    (0 * 2的零次方) + (1* 2的一次方)+ (0 * 2 的二次方)+(1 * 2的三次方) +(0 * 2的四次方) +(1* 2的五次方) + (0 * 2的六次方) + (0 * 2的7次方) = 0 + 2 + 0 + 8 + 0 + 32 + 0 + 0 = 42
    79172d331fbe5e87415c0d649ab4f382.png
    • 如果11101011想转为*负的十进制,因为最高位是1,所以先减一取反 00010101,然后计算出00010101对应的十进制为21,所以11101011最终对应的十进制为 -21。

    c7bc02f945c234b767087dd49d34d25b.png

    展开全文
  • 正整数的十进制转换二进制将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。只需记住要点:除二取余,倒序排列。由于计算机内部表示数的字节单位...

    正整数的十进制转换二进制

    将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。只需记住要点:除二取余,倒序排列。

    由于计算机内部表示数的字节单位都是定长的,以2的幂次展开,或者8位,或者16位,或者32位....。于是,一个二进制数用计算机表示时,位数不足2的幂次时,高位上要补足若干个0。

    eg: 125 转换为二进制

    54228e0a-4213-eb11-8da9-e4434bdf6706.png

    二进制转换为十进制

    二进制转十进制的转换原理:从二进制的右边第一个数开始,每一个乘以2的n次方,n从0开始,每次递增1。然后得出来的每个数相加即是十进制数。

    eg:  0111 1101 转换为二进制

    从右边开始每一个乘以2的n次方,n从0开始

    0111 1101

    1   ---->    2^0        2的0次方

    0   ---->    0            因为为0,所有取0,如果为1 ,应该为2^1

    1   ---->    2^2        2的2次方

    1   ---->    2^3        2的3次方

    1   ---->    2^4        2的4次方

    1   ---->    2^5        2的5次方

    1   ---->    2^6        2的6次方

    0   ---->    0            因为为0,所有取0,如果为1 ,应该为2^7

    最后将所有项相加:1+0+4+8+16+32+64+0 = 125

    展开全文
  • 进制转换 十进制 数值:0~9 数位:123 位权:百位十位个位 二进制 数值:0~1 数位:10 位权:128-64-32-16-8-4-2-1 十六进制 ...0~9,A(10),B(11),C(12),D(13),E...二进制,十进制 10和2互 128 64 32 16 8 4 2 ...

    进制转换
    十进制
    数值:0~9
    数位:123
    位权:百位十位个位
    二进制
    数值:0~1
    数位:10
    位权:128-64-32-16-8-4-2-1
    十六进制
    数值
    0~9,A(10),B(11),C(12),D(13),E(14),F(15)
    数位
    10
    位权
    十六的倍数
    二进制,十进制互转
    10和2互转
    128 64 32 16 8 4 2 1
    1 1 1 1 1 1 1 1
    比如:255=1111 1111
    1=0000 0001
    2=0000 0010
    位权加减法
    十进制转换成2进制
    方法:
    1 请将8位2进制,每个位置的位权写出来。
    2 通过加减法,在2进制位权中取得相应数字。 不足的位置用0填充。

    示例:
    129=1000 0001
    192=1100 0000
    130=1000 0010
    67=0100 0011
    33=0010 0001

    二进制转十进制
    示例:
    1010 1010=170
    1111 1110=?254

    单位换算
    ASCII
      比特=bit=b=1/0
      字节=byte=B=8个比特
      1KB=1024B
      1MB=1024KB
      1GB=1024MB
      1TB=1024GB

    展开全文
  • 下面本篇文章就来给大家介绍一下dechex()和base_convert() 函数是如何十进制转换为十六进制的,希望对大家有所帮助。【视频教程推荐:PHP教程】方法一:使用dechex()函数将十进制转换为十六进制dechex()函数是PHP...
  • 十进制与二进制互转首先理解十进制如何转二进制:将十进制数据除以2直到商为0,然后将余数从下往上排序连接,即可得到该数字的二进制数。如:整数1313/2=6余16/2=3余03/2=1余11/2=0余1取13余数,倒序连接。所以13...
  • 十进制转换为其他进制:除基取余法 十进制转换二进制 如23 ­­­­­ 23/2 11 余数1 11/2 5 余数1 5/2 2 余数1 2/2 1 余数0 1/2 0 余数1 从下往上取余数就是10111,所以二进制就是0b10111 十进制转换为十六进制 如...
  • python如何进行进制转换1、十进制转二进制(bin)首先我们看看怎么把一...使用方法oct(dec)输出3、十进制转16进制(hex)然后十进制转化16进制,同样使用python的内置方法进行hex(dec)输出16进制4、二进制转10进制输...
  • 十进制系统是最常用的且是日常生活中的标准系统,以十为基准。因此,它从0到9,即0、1、2、3、4、5、6、7、8...那么十进制与十六进制之间如何进行转换?1、十进制转换为十六进制若十进制数23785转为十六进制,23785...
  • * 功能:演示如何十进制转换成16进制 */ #include #include void hex_covert(int x); void hex_covert(int x) { char a; int y; if (x==0) { printf("0"); return ; } ...
  • 进制转换 ...用十进制的的数除以16得到商和余数,再用商除以2得到一个商和余数,依次用商除2直到商为0,最后将先得到的余数作为低位依次排列起来,就得到了一个二进制数; 十进制转十六进制: 用十进制
  • (1)二进制,八进制,十六进制3个进制转十进制 二进制10进制 eg: 0b101001010c 1*2**0+0*2**1+1*2**2+0*2**3+0*2**4+1*2**5+0*2**6+1*2**7 =1+0+4+0+0+32+0+128 =165 即0b10100101=0c165 从左往右第一位数乘2的...
  • 一、十进制转二进制 我们可以做除法,用该数除以2,记录余数,得到的商再除以2,直到商为0,停下来。然后将所有余数倒叙排列,得到转换结果。比如把10从十进制转换为二进制。 二、十进制转十六进制 我们可以做...
  • 例:我们将728这个十进制数转换为4位十进制表示。通常用于数码管的显示。 首先我们定义一个比较寄存器comp,因为转换的值为728,所以定义一个16位的寄存器2^16=1024*64(偏大)。 在定义4个转换寄存器,4位足够。 ...
  • 十进制转二进制: 方法1: 用十进制的的数除以16得到商和余数,再用商除以2得到一个商和余数,依次用商除2直到商为0,最后将先得到的余数作为低位依次排列起来,就得到了一个二进制数; 十进制转十六进制: 注:在...
  • Integer.toHexString(int i)十进制转成八进制Integer.toOctalString(int i)十进制转成二进制Integer.toBinaryString(int i)十六进制十进制Integer.valueOf("FFFF",16).toString()八进制十进制Integer.value...
  • 自http://blog.csdn.net/szwangdf/article/details/2601941十进制转成十六进制:Integer.toHexString(int i)十进制转成八进制Integer.toOctalString(int i)十进制转成二进制Integer.toBinaryString(int i)十六进制...
  • int型可以输出为十进制,也可以转换为16进制输出,那么该如何写呢?int型数据的范围是多少呢?unsigned int型呢? 十六进制输出只需要**%x**就可以了,只要这个数没有超过他自己定义的范围,都可以输出, unsigned ...
  • 例如,我有int a = 100;但是我要获得int b = 0x100;如何把a转换成b。
  • 如何将字符串中的10进制数和16进制数提取出来,看以下代码: #include typedef char TUINT8 ; typedef int TUINT32; TUINT32 Read_DecNumber(const TUINT8* str); TUINT32 Read_HexNumber(const TUINT8* str); ...
  • 十进制顾名思义就是逢十进一 (常用) 二进制就是逢二进一(计算机内部工作用) 十六进制顾名思义就是逢十六进一 ...十进制转二进制则是把十进制数拆解成二的倍数的和然后按位把一与零进行组合 把十进...
  • 正整数的十进制转换二进制将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。只需记住要点:除二取余,倒序排列。由于计算机内部表示数的字节单位...
  • 由“给定一个数int,求其二进制数中有多少个1”而google到的,关于几种进制间如何转换... 在计算机中进制有10进制,2进制,8进制,和16进制。那么他们之间是如何定义和转换的呢?最为我们熟悉的进制应该是10进制,也就

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 418
精华内容 167
关键字:

十进制如何转16进制