精华内容
下载资源
问答
  • 二进制与八进制的相互转换
    2021-02-12 19:18:57

    Java程序二进制数与八进制相互转换

    在此程序中,您将学习使用Java中的函数将二进制数转换为八进制数,反之亦然。

    示例1:将二进制转换为八进制的程序

    在此程序中,我们将首先将二进制数字转换为十进制。然后,十进制数字转换为八进制。

    public class BinaryOctal {

    public static void main(String[] args) {

    long binary = 101001;

    int octal = convertBinarytoOctal(binary);

    System.out.printf("%d 二进制 = %d 八进制", binary, octal);

    }

    public static int convertBinarytoOctal(long binaryNumber)

    {

    int octalNumber = 0, decimalNumber = 0, i = 0;

    while(binaryNumber != 0)

    {

    decimalNumber += (binaryNumber % 10) * Math.pow(2, i);

    ++i;

    binaryNumber /= 10;

    }

    i = 1;

    while (decimalNumber != 0)

    {

    octalNumber += (decimalNumber % 8) * i;

    decimalNumber /= 8;

    i *= 10;

    }

    return octalNumber;

    }

    }

    运行该程序时,输出为:101001 二进制 = 51 八进制

    此转换发生为:二进制到十进制

    1 * 25 + 0 * 24 + 1 * 23 + 0 * 22 + 0 * 21 + 1 * 20 = 41

    十进制到八进制

    8 | 418 | 5 -- 1

    8 | 0 -- 5

    (51)

    示例2:将八进制转换为二进制的程序

    在此程序中,首先将八进制数从十进制转换为十进制。然后,将十进制数转换为二进制数。

    public class OctalBinary {

    public static void main(String[] args) {

    int octal = 67;

    long binary = convertOctalToBinary(octal);

    System.out.printf("%d in octal = %d 二进制", octal, binary);

    }

    public static long convertOctalToBinary(int octalNumber)

    {

    int decimalNumber = 0, i = 0;

    long binaryNumber = 0;

    while(octalNumber != 0)

    {

    decimalNumber += (octalNumber % 10) * Math.pow(8, i);

    ++i;

    octalNumber/=10;

    }

    i = 1;

    while (decimalNumber != 0)

    {

    binaryNumber += (decimalNumber % 2) * i;

    decimalNumber /= 2;

    i *= 10;

    }

    return binaryNumber;

    }

    }

    运行该程序时,输出为:67 in octal = 110111 二进制

    此转换发生为:八进制到十进制

    6 * 81 + 7 * 80 = 55

    十进制到二进制

    2 | 552 | 27 -- 1

    2 | 13 -- 1

    2 | 6  -- 1

    2 | 3  -- 0

    2 | 1  -- 1

    2 | 0  -- 1

    (110111)

    更多相关内容
  • 文章目录1.1 常见的进制1.2 进制间如何转换1.3 十进制转换成其它进制1.4 其它进制转换成十进制1.5 二进制转换、十六进制(第一种方法)1.6 二进制转换、十六进制(第二种方法)1.7 、十六进制转换二进制(第...

    1.1 常见的进制

    二进制

    01:就是01的组合
    0201
    

    八进制

    01:就是07的组合
    0201234567
    

    十进制

    01:就是09的组合
    020123456789
    

    十六进制

    01:就是0-9和A-F间的组合,A等于10,B等于11,C等于12,D等于13,E等于14,F等于15
    020123456789、a、b、c、d、e、f
    

    1.2 进制间如何转换

    问:二进制、八进制、十进制、十六进制能否直接进行互相转换。
    答:可以( 这是站在直接给出答案的角度来回答的),如下图所示:
    在这里插入图片描述
    进制之间如何进行互相转换呢?这个我们就要从换算步骤来说,如下所示:
    在这里插入图片描述

    ## 01:十进制转换二、八、十六进制
    	一步到位,可以直接转换。
    
    ## 02:二、八、十六进制转换成十进制
    	一步到位,可以直接转换。
    
    ## 03:二进制转换成八、十六进制:
          A:第一种方法:(初次好理解)
            a:先转换成十进制(02)
            b:再由十进制转换成八、十六进制(01)
                
          B:第二种方法:(推荐)
            a:先分组,从右往左,二转八是三位一组,二转十六是四位一组。不够在左侧用零填充。
            b:各组内按二转10出结果,最后结果是各组的结果相拼接。
    
    ## 04:八、十六进制转换成成二进制
          A:第一种方法:(初次好理解)
            a:先转换成十进制(02)
            b:再由十进制转换成二、十六进制(01)
                
          B:第二种方法:(推荐)
            a:拆分,例如:将76进行拆分,拆分后就是7和6
            b:各位转换成二进制:就是将7和6分别转换成二进制
            c:各位二进制的结果进行拼接
    

    1.3 十进制转换二、八、十六进制

    这里是将十进制(整数)转换成二进制、八进制、16进制,以25为例。思维图如下所示:
    在这里插入图片描述

    十进制转换成2进制

    在这里插入图片描述

    十进制转换成8进制

    在这里插入图片描述

    十进制转换成16进制

    在这里插入图片描述

    1.4 二、八、十六进制转换成十进制

    注意:这里将其它进制(二、八、十六)转换成十进制。
    在这里插入图片描述

    二进制转换成十进制:以 1101101110 为例

    在这里插入图片描述

    八进制转换成十进制:以 76 为例

    在这里插入图片描述

    16进制转换成十进制:以 19ad 为例

    在这里插入图片描述

    1.5 二进制转换成八、十六进制(第一种方法)

    注意:这里是将二进制转换成八、十六进制,我们先将其转换成十进制、再由十进制转换成八进制和十六进制。如下图所示:
    在这里插入图片描述

    二进制转换成八进制:11001

    在这里插入图片描述

    二进制转换成十六进制:11001

    在这里插入图片描述

    1.6 二进制转换成八、十六进制(第二种方法)

    注意:这里我们是就不是先将其转换成十进制后,再转换成八进制和十六进制。我们采用的方法是:先分组(二转八3位一组,二转十六4位一组,从右往左,不够用0补充),接着进行各组内计算(二转十的方法),最后结果是各组的结果进行拼接。

    二转八

    二      进    制:1101110
    分组(三位一组)(001)(101)(110)   # 从右往左分
    组  内  计 算 一 :(001)(401)(420)   # 二转十
    组  内  计 算 二 :1     5    6      # 各组内相加
    八     进      制:156               # 各组按顺序拼接
    

    二转十六

    二    进    制:1101110
    分组(四位一组)(0110)(1110)   # 从右往左分
    组  内  计算一:(0420)(8420)   # 二转十
    组  内  计算二:6      14      # 各组内相加
    十  六  进  制:6e             # 各组按顺序拼接,10至15等于a至f
    

    总结

    可以看出在换算的过程中,也转换成了十进制
    

    1.7 八、十六进制转换成二进制(第一种方法)

    注意:这里是将八、十六进制转换成二进制、如下图所示:
    在这里插入图片描述

    八进制转换成二进制:以 76 为例

    在这里插入图片描述

    16进制转换成二进制:以 19ad 为例

    在这里插入图片描述

    1.8 八、十六进制转换成二进制(第二种方法)

    注意:这里我们是就不是先将其转换成十进制后,再转换成二进制了。而是:先对其进行拆分(例如:将76拆分后就是7和6),接着将7和6分别转换成二进制,最后将7的二进制和6的二进制进行拼接。

    八转二

    八     进     制:156
    拆            分:1           5           6                  # 拆分后的各位是不是也是个十进制
    各 位 转换成二进制:(421)001   (421)101    (421)110
    拼            接:1101110
    

    十六转二

    十  六   进   制:6e
    拆            分:6              e                           # 拆分后的各位是不是也是个十进制,只不过e你得看成是14
    各 位 转换成二进制: (8421)0110   8421(1110)
    拼            接:1101110
    

    总结

    可以看出在换算的过程中,也转换成了十进制,就是将拆分后的各位看成十进制
    
    展开全文
  • 本文主要介绍的是VB的十进制,八进制,十六进制,二进制相互转换大全
  • 思路:先将二进制转换为十进制(详细参考我的这篇博客 二、十进制相互转换),然后将十进制转换为八进制(这个我们很熟悉)。 具体代码如下: #include <stdio.h> #include <math.h> int main() { long...

    二进制转换为八进制:
    思路:先将二进制转换为十进制(详细参考我的这篇博客 二、十进制相互转换),然后将十进制转换为八进制(这个我们很熟悉)。
    具体代码如下:

    #include <stdio.h>
    #include <math.h>
    int main()
    {
        long long x;
        printf("输入一个二进制数: \n");
        scanf("%lld", &x);
        printf("二进制数 %lld 转换为八进制为 %d", x, convert(x));
        return 0;
    } 
    int convert(long long x)
    {
        int octalNumber = 0, decimalNumber = 0, i = 0;
        while(x != 0)
        {
            decimalNumber += (x%10) * pow(2,i);
            ++i;
            x/=10;
        }
        i = 1;
        while (decimalNumber != 0)
        {
            octalNumber += (decimalNumber % 8) * i;
            decimalNumber /= 8;
            i *= 10;
        }
        return octalNumber;
    }

    结果如下:在这里插入图片描述
    八进制转换为二进制:
    思路:八进制先转换为十进制再转换为二进制。
    具体代码:

    #include <stdio.h>
    #include <math.h>
    long long convert(int x);
    int main()
    {
        int x;
        printf("输入一个八进制数: ");
        scanf("%d", &x);
        printf("八进制数 %d 转二进制为 %lld", x, convert(x));
        return 0;
    } 
    long long convert(int x)
    {
        int decimalNumber = 0, i = 0;
        long long binaryNumber = 0;
        while(x != 0)
        {
            decimalNumber += (x%10) * pow(8,i);
            ++i;
            x/=10;
        }
        i = 1;
        while (decimalNumber != 0)
        {
            binaryNumber += (decimalNumber % 2) * i;
            decimalNumber /= 2;
            i *= 10;
        }
        return binaryNumber;
    }

    结果如下:
    在这里插入图片描述

    展开全文
  • 不同进制之间的相互转换 练一练手: 二进制转十进制 十进制原理: 为了方便学习二进制,我们先来看一下十进制的原理,十进制的特点就是有10个符号来表示一个数字,分别是0123456789;就比如这个数字235...

    目录

    二进制转十进制

    十进制原理:

    二进制转十进制计算:

     八、十六进制转十进制

    八、十六进制转十进制计算: 

    十进制转其他进制

    十进制转二进制:

    十进制转八进制:

    十进制转十六进制:

    不同进制之间的相互转换

     练一练手:


    二进制转十进制

    十进制原理:

    为了方便学习二进制,我们先来看一下十进制的原理,十进制的特点就是有10个符号来表示一个数字,分别是0123456789;就比如这个数字235,他的个位是5,代表5个1 ,十位是3,代表3个10,百位是2,代表两个100,这个数字就代表这三个值的和。换一种方式来表示,他就是5×10^0加上3×10^1加上2×10^2也就是200+30+5,最后得出了235;

    二进制其实也是一样的原理,再十进制中有10个可用的符号来表示一个数字,在二进制中呢,就只用两个可用的符号来表示一个数字,分别是0和1。在十进制中,我们可以把0-9种不同的符号放到不同的位中,组成各种各样的数字,在二进制中,我们把0和1两种不同的符号,放入不同的位中,同样可以组成各种各样的数字。

    二进制转十进制计算:

    如数字1011,我把这个二进制数字放在这个十进制数字的边上,这样我们就可以模仿刚才我们算十进制的方法,把这个二进制数字算出来。在我们刚才算十进制的过程中,从右边数第一位需要乘以2的零次方、第二位乘2的一次方……(如图),将所以乘数相加就是十进制表示

     八、十六进制转十进制

    我们现在知道了⒉进制怎么转成10进制,八进制和十六进制又是怎么回事儿呢。其实都是一样的原理,十进制有十个符号表示一个数字,二进制有两个符号表示一个数字,八进制有8个符号用来表示一个数字。分别是01234567,十六进制有16个符号来表示一个数字分别是0123456789ABCDEF。

    八、十六进制转十进制计算:
     

    八进制的0到7就对应十进制的0到7,十六进制的0到F就对应十进制的0到15。(如上图)

    我们来看一个八进制的数字,227,我们还是用和刚才同样的方法来计算,从右边数第一位的7乘以8的0次方,第二位7乘以8的1次方,第三位的7乘以8的2次方,也就是2×64 + 7×8  +7×1,最后得出128+56+7=191,也就是8进制中的二二七等于十进制中的一九一;

    十六进制同理可得,只需要把ABCDEF转化成对应的十进制即可;

    十进制转其他进制

    我们现在知道了每个进制怎么转换成十进制,那么,十进制的数字怎么转换成其他进制呢?一个普遍的方法就是连除法

    十进制转二进制:

    对于这个十进制数字29来说,如果要转换成二进制,我们就把他先除以2,得到14余1、再把14除以二,得到7余0,再把7除以二,得到3余1,再把3除以二,得到1余1,再把1除以二,得到0余1,一直除到到这个商等于0,就可以结束了,最后把得出来的最右边的这一列余数从下往上反向排列,就可以得出一个二进制数11101,我们就成功的把这个十进制数字29转换成了二进制数字11101

    十进制转八进制:


    我们同样可以用连除法把十进制数字转换成8进制, 比如说这个十进制数字900,我们把它先除以8得到112余4,再把112除以8得到14余0,再把14除以8得到1余6,再把1除以8得到0余1,直到商等于0,就可以结束了,最后把得出来的最右边的这一列余数从下往上反向排列,就可以得出一个二进制数1604

     十进制转十六进制:

    与上文同理,字母转换即可 

    不同进制之间的相互转换

    拿二进制转八进制举例,由于2的三次方为8, 所以每3位可以转换为1位八进制; 如二进制10 111 001前面的001等于1*2^0+0*2^1+0*2^2,和为八进制的1,以此类推得2 7 1,那么二进制10111001转化为八进制就是271(十六进制同理)

    笔记篇,素材来源于up主“我是2045” ;

     练一练手:

    P1143 进制转换

    #include<bits/stdc++.h>
    using namespace std;
    string s;
    int a,b;
    int wei,sum,num;
    int c[10000010];
    int main()
    {
    	cin>>a>>s>>b;
    	for(int i=0;i<s.size();i++)
    	{
    		if(s[i]<'A')
    		{
    			wei=pow(a,s.size()-1-i);    //从大向小取位
    			wei*=(s[i]-'0');
    			sum+=wei;
    		}
    		else
    		{
    			wei=pow(a,s.size()-1-i);
    			wei*=(s[i]-'A'+10);
    			sum+=wei;
    		}
    	}
                                           //sum为a进制转化为十进制的值
    	while(sum>0)
    	{
    		c[num++]=sum%b;    //连除法
    		sum/=b;
    	}
    	for(int i=num-1;i>=0;i--)    //对应前面,“从下到上输出”
    	{
    		if(c[i]>=10) printf("%c",c[i]+'A'-10);    //可能是字符,cout默认数字
    		else cout<<c[i];
    	}
    	 
    	return 0;
    }
    

    展开全文
  • 一、二进制转换八进制 规则:从低位开始,将二进制数每三位一组,转成对应的八进制数即可。 案例:请将 ob11010101 转成八进制 ob11(3)010(2)101(5) => 0325 二、二进制转换成十六进制 规则:从低位开始...
  • 1、背景(Contexts)之前使用SQL把十进制的整数转换为三十六进制,SQL代码请参考:SQL Server 进制转换函数,其实它是基于、十、十六进制转换的计算公式的,进制之间的转换是很基础的知识,但是我发现网络上没有...
  • 一、十进制与二进制之间的转换 1、十进制转二进制 ...二、二进制与八进制之间的转换 1、二进制八进制 方法为:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转...
  • 2、二进制与八进制之间的转换 3、二进制与十六进制之间的转换 ############################################################################################################################################...
  • C 语言实例 – 八进制与进制相互转换八进制与进制相互转换。实例 - 二进制转换为八进制#include #include int convertBinarytoOctal(long long binaryNumber);int main(){long long binaryNumber;printf("输入一...
  • 计算机中有四种进制方式: 1、二进制:由0和1两个数字组成。 2、八进制:八个符号,由0~7八个数字组成。开头一般以0开头。...一、二进制与其他进制之间的转换 (1)二进制转十进制:按权展开求和...
  • C语言:八进制与二进制相互转换

    千次阅读 2021-11-24 20:28:02
    问题:八进制与进制相互转换。 代码1:二进制转换为八进制 #include <stdio.h> #include <math.h> int convertBinarytoOctal(long long binaryNumber); int main() { long long binaryNumber; ...
  • 二进制数值至八进制,十进制,十六进制字符串转换; 十六进制数值至二进制八进制,十进制字符串转换; 十进制数值至二进制八进制,十六进制字符串转换
  • 把其他进制整数转换二进制 把其他进制整数转换八进制 取整函数(取整为十进制) 把其他进制整数转换成十六进制 浮点数转换函数 举例 bin(20) oct(20)
  • c#二进制八进制,十进制相互转换详解,模拟的小程序,感兴趣的可以下载看看,恰恰饭,暂时不支持小数点
  • 十进制: ------所谓十进制就是以10为基数的计数体制,其计数规律为"逢十进一"。 ------例如:十进制数4587.29可以表示为 4587.29=4×10³+5×10²+8×...------例如:转换二进制数1010110为十进制数 法一:每...
  • 一、二进制和十进制之间的相互转换 十进制转二进制:整数部分和小数部分分别转换,然后再合并,十进制整数转换为二进制整数的方法为“除2取余”;十进制小数转化二进制小数为“乘2取整”。(整数部分按从下往上的...
  • 二进制转换为其他进制: 二进制八进制:把二进制的数每三个位分一等份,从右边开始分。计算三个二进制数的和就是八进制数中的一位。 如下: 101110111001转成八进制:从右边开始分。 101 110 111 001三位...
  • 使用int(str, n)即可完成二进制八进制、十六进制到十进制的转换: str:是要转换的进制具体数,类型字符串 n:是要转换的进制,类型整型 1.1 二进制 转 十进制 int(str_b, 2) >>> int('0101',2) 5 &...
  • 三位二进制数按权展开(每一位上的数字要乘以2的n次方)相加得1位八进制数,若二进制数此时只有整数部分,而没有小数部分,则是从右到左依次数三位进行转换,如果位数不够3位时,要用0来补齐3位 3. 八进制转换...
  • 二进制 二进制就是计算机常用的进制,即逢二进一。例如:1010 八进制 八进制即逢八进一。例如:626 ...十进制就是我们在计算中常用的进制,所以就...1.二进制八进制二进制数10010110举例 首先需要3个二进...
  • 十进制转换二进制 除以二取余,直到商为0. 十进制转换八进制、十六进制 二进制转换十进制 按权展开再相加 二转八、十六 三位三位取,从右开始,不足位补零,每三位按权展开再相加。转换为十六是四位四位取,其余...
  • 十六进制相互转换二进制转八进制,十进制,十六进制二进制转八进制二进制转十进制二进制转十六进制八进制转二进制,十进制,十六进制八进制转二进制八进制转十进制 二进制转八进制,十进制,十六进制 二进制转八进制...
  • public class Main { public static void main(String[] args) { //Integer包装类方法中的进制转换:... //转二进制:toBinaryString(int i) //转十六进制:toHexString(int i) //转八进制:toOctalString(int .
  • 进制转换二进制八进制、十六进制、十进制之间的转换 不同进制之间的转换在编程中经常会用到,尤其是C语言。 将二进制八进制、十六进制转换为十进制 二进制八进制和十六进制向十进制转换都非常容易,就是...
  • 二进制 八进制 十六进制转换为十进制 1. 二进制转换为十进制 例如一个二进制的数1010101如何转换成十进制数呢? 把最后一位看做 2^0 依次将指数递增上去 再乘以每一位所对应的数字 最后相加就好了(以二进制的...
  • 二进制,八进制,十六进制,十进制之间相互转换[总结].pdf
  • VB十进制八进制十六进制二进制相互转换大全.pdf
  • 转为十进制(int) 使用 int() 函数的结果是十进制。 第一个参数是字符串,第二个参数是说明字符串本身是几进制的数。 int('100',2) #4 ...bin(int('17',8)) #八进制->十进制->二进制。结果是0b1111 转

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,649
精华内容 13,059
热门标签
关键字:

二进制与八进制的相互转换