精华内容
下载资源
问答
  • 方法1 java.lang包里integer类下有一个方法toBinaryString public static String toBinaryString(inti) 以二进制(基数 2)无符号整数形式返回...将该值转换为二进制(基数 2)形式无前导 0 ASCII 数字字符...

    方法1

    java.lang包里integer类下有一个方法 toBinaryString

    public static String toBinaryString(int i)
    以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。

    如果参数为负,该无符号整数值为参数加上 232;否则等于该参数。将该值转换为二进制(基数 2)形式的无前导 0 的 ASCII 数字字符串。如果无符号数的大小为零,则用一个零字符 '0' (’\u0030’) 表示它;否则,无符号数大小的表示形式中的第一个字符将不是零字符。字符 '0' ('\u0030') 和 '1' ('\u0031') 被用作二进制数字。  

     例如

    String a = Integer.toBinaryString(7);
    System.out.print(a);
    输出
    111
    源代码

    public static String toBinaryString(int i) {
    return toUnsignedString0(i, 1);
    }

    
    

    /**
    * Convert the integer to an unsigned number.
    */
    private static String toUnsignedString0(int val, int shift) {
    // assert shift > 0 && shift <=5 : "Illegal shift value";
    int mag = Integer.SIZE - Integer.numberOfLeadingZeros(val);//Integer.SIZE=32,Integer.numberOfLeadingZeros是求补码前面的0的个数
    int chars = Math.max(((mag + (shift - 1)) / shift), 1);
    char[] buf = new char[chars];

    
    

    formatUnsignedInt(val, shift, buf, 0, chars);

    
    

    // Use special constructor which takes over "buf".
    return new String(buf, true);
    }

    
    

    /**
    * Format a long (treated as unsigned) into a character buffer.
    * @param val the unsigned int to format
    * @param shift the log2 of the base to format in (4 for hex, 3 for octal, 1 for binary)
    * @param buf the character buffer to write to
    * @param offset the offset in the destination buffer to start at
    * @param len the number of characters to write
    * @return the lowest character location used
    */
    static int formatUnsignedInt(int val, int shift, char[] buf, int offset, int len) {
    int charPos = len;
    int radix = 1 << shift;
    int mask = radix - 1;
    do {
    buf[offset + --charPos] = Integer.digits[val & mask];//前面有一个digits数组
    val >>>= shift;
    } while (val != 0 && charPos > 0);

    
    

    return charPos;
    }

    方法2

    要求转换为n位的二进制数

    int m =7//要转换的数

    int[] a = new int[n];
    for (int i = n-1; i >= 0; i--) {
    if ((m & (1 << i)) != 0) //按位与
    a[i]=1;
    else
    a[i] = 0;

    }



     

    转载于:https://www.cnblogs.com/lxy1998/p/6798550.html

    展开全文
  • 主要介绍了C语言用栈实现十进制转换为二进制的方法,结合实例形式分析了C语言栈的定义及进制转换使用技巧,需要的朋友可以参考下
  • 本文实例讲述了C语言用栈实现十进制转换为二进制的方法。分享给大家供大家参考,具体如下:#include#include#include#include#include "process.h"#define SIZE 100#define STACKINCREMENT 10#define OK 1#define ...

    本文实例讲述了C语言用栈实现十进制转换为二进制的方法。分享给大家供大家参考,具体如下:

    #include

    #include

    #include

    #include

    #include "process.h"

    #define SIZE 100

    #define STACKINCREMENT 10

    #define OK 1

    #define ERROR 0

    #define TRUE 1

    #define FALSE 0

    typedef int Status;

    typedef struct

    {

    int a;

    } SElemType;

    typedef struct

    {

    SElemType *base;

    SElemType *top;

    int stacksize;

    } SqStack;

    SqStack S; //定义全局变量

    Status InitStack(SqStack *S)

    {

    S->base=(SElemType *)malloc(SIZE*sizeof(SElemType));

    if(!S->base) exit(OVERFLOW);

    S->top=S->base;

    S->stacksize=SIZE;

    return OK;

    }

    Status Push(SqStack *S,SElemType e)

    {

    if(S->top-S->base>=S->stacksize)

    {

    S->base=(SElemType *)malloc((S->stacksize+STACKINCREMENT)*sizeof(SElemType));

    if(!S->base) exit(OVERFLOW);

    S->top=S->base+S->stacksize;

    S->stacksize+=STACKINCREMENT;

    }

    *S->top++=e;

    //printf("%dwww\n",*--S->top);

    return OK;

    }

    Status Stackempty(SqStack *S)

    {

    if(S->top==S->base)

    return TRUE;

    else

    return FALSE;

    }

    Status Pop(SqStack *S,SElemType *e)

    {

    if(S->top==S->base) return ERROR;

    *e=*--S->top;

    return OK;

    }

    Status DtoBTrans(int N,SqStack *S)

    {

    SElemType e;

    while(N)

    {

    e.a=N%2;

    Push(S,e);

    N=N/2;

    }

    while(!Stackempty(S))

    {

    Pop(S,&e);

    printf("%d",e);

    }

    return OK;

    }

    void main()

    {

    int x;

    InitStack(&S);

    printf("请输入十进制数:");

    scanf("%d",&x);

    DtoBTrans(x,&S);

    }

    运行结果:

    eba0e5ba4b76eef12c599209fad2cb38.png

    希望本文所述对大家C语言程序设计有所帮助。

    展开全文
  • 十进制转换为二进制的方法很多,本方法利用C语言能够对位进行操作的特点。对于C语言来说,一个整数在计算机内就是以二进制形式存储的,所以没有必要再将一个整数经过一系列运算转换为二进制形式,只要将整数在内存...

    问题:将任一十进制整数转换为二进制形式。

    方法一分析:
    将十进制转换为二进制的方法很多,本方法利用C语言能够对位进行操作的特点。对于C语言来说,一个整数在计算机内就是以二进制形式存储的,所以没有必要再将一个整数经过一系列运算转换为二进制形式,只要将整数在内存中的二进制表示输出即可。

    源程序:

    #include<stdio.h>
    void printb(int,int);
    void main()
    {
    	int x;
    	printf("Input number:");
    	scanf("%d",&x);
    	printf(''number of decimal form:%d\n'',x);
    	printf("it's binary form:");
    	printb(x,sizeof(int)*8);			/*x:整数sizeof(int):int型在内存中所占的字节数,sizeof(int)*8:int型对应的位数*/
    	putchar('\n');
    }
    void printb(int x,int n)
    {
    	if(n>0)
    	{
    		putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1)));		/*输出第n位,先是将1左移(n-1)位,再与x进行与运算,再右移n-1位,并与‘0’相加。按位与运算主要用途是清零,指定取操作数的某些位,同1为1,否则为0*/
    		printb(x,n-1);						/*递归调用,输出x的后n-1位*/
    	}
    }
    

    运行过程如下图:
    在这里插入图片描述
    方法二分析:
    对一个整数x,采取除2取整的方法,对商进行如此递归,边界条件是商小于1时递归结束。

    源程序:

    #include<stdio.h>
    void fun(int n)
    {
    	int i,k;
    	i=n%2;			/*取余*/
    	k=n/2;			/*取商*/
    	if(k>0)		fun(k);
    	printf("%d",i);
    }
    void main()
    {
    	int	x;
    	float	d;
    	printf("输入十进制数x的值:");
    	scanf("%d",&x);
    	printf("转换为二进制数为:");
    	fun(x);
    	printf("\n");
    }
    

    若输入十进制数x的值为10,则递归调用过程如下图所示,最终转换为二进制数结果是1010.

    展开全文
  • 上节课我们学习了十进制转换二进制的方法,那二进制转换十进制是怎么转换的呢?我们来看看下面的动图(白色为二进制,红色为十进制),你找到规律了吗? 我们这节课学习一下二进制转换十进制的方法。方法如下:将二...

          上节课我们学习了十进制转换成二进制的方法,那二进制转换十进制是怎么转换的呢?我们来看看下面的动图(白色为二进制,红色为十进制),你找到规律了吗?

    ca20d06e33d8ff6e7090266b2485c991.gif

           我们这节课学习一下二进制转换十进制的方法。方法如下:将二进制数从小数点开始,往左从0开始对数值进行正序编号,往右从-1开始对数值进行编号,直到最末位。然后分别将各个位上的数乘以2的K次幂(其中k的值为各个位对应的上述编号),对所得的值求和。

           因为是二进制所以上述乘以2的K次幂。

    23093337dd57ebf25feec03742eb337e.png

    1f1ac1f092fcc32517d4c13531494438.png

           通过上面的学习,我们掌握了二进制转换十进制的方法,那我们把次方法进行知识迁移扩展。R进制转换为十进制数。将R进制数从小数点开始,往左从0开始对数值进行正序编号,往右从-1开始对数值进行编号,直到最末位。然后分别将各个位上的数乘以R的K次幂(其中k的值为各个位对应的上述编号),对所得的值求和。

    6d09cb71700e00c9a0190de965cf5f66.png下一篇我们会介绍二进制与八进制、十六进制相互转换的方法,欢迎大家继续关注

    ccf6552af1f666367d102a6f98882d48.png

    本公众号介绍计算机基础知识及办公软件的使用方法,欢迎关注!

    展开全文
  • 本文介绍了python十进制二进制的转换方法(含浮点数),分享给大家,也给自己留个笔记,具体如下:我终于写完了 , 十进制二进制的小数部分卡了我将近一个小时上代码#-*- coding: utf-8from decimal import ...
  • 二进制是在计算机中常用的一种进制数,其数据用0和1两个数码来表示...举个例子,二进制的1010转换为十进制的话,从其最后面一位0开始,一直往前,其权重依次为2º、2¹、2²、2³,所以这个数转换为十进制就是0×2...
  • 十进制转换为二进制   在现实生活当中通常都是使用十进制的数值进行计算。但是在计算机当中,二进制、八进制以及十六进制的使用相比于十进制来说就更加的普遍。   接下来就和我来看看十进制是如何转化为二进制的...
  • 一、十进制整数转换为二进制 一般方法:对所给数字除以2进行求余,然后从最后一个余数读到第一个余数,以11为例。 可求得其二进制为:1011 针对不太大数字,我们可以用简便方法。 首先,我们解析一下十进制数字,...
  • java里面是有进制间互换现成的方法的:public class十进制与各进制的相互转换 {public static voidmain(String[] args){//java已经实现的机制:十进制转换为二进制int decimal = 10;System.out.println("十进制数:"+...
  • 本文介绍了python十进制二进制的转换方法(含浮点数),分享给大家,也给自己留个笔记,具体如下: 我终于写完了 , 十进制二进制的小数部分卡了我将近一个小时 上代码 #-*- coding: utf-8 from decimal ...
  • 题目分析:将某个数从十进制转为二进制的具体方法是,该数对2取余,结果要么1要么0,此该数对应二进制的末位;然后该数除以二,得到的商再次对2取余,结果对应二进制的倒数第二位……以此类推,知道除以2的...
  • labview 十进制转换为二进制,比较简单一种方法,还可以用在其他方面
  • 我们可以使用Integer类toString()方法十进制转换为二进制数。此方法有两个参数,第一个参数是十进制数,第二个参数是我们要转换基数。对于二进制,基数为2。 1 2 3 4 5 ...
  • C语言中,整数都是以二进制的形式存放在内存中,所谓的二进制、八进制、十进制和十六进制只是输出显示方式的不同。 下表是各种进制整数的输出格式。 细心的读者可能会发现,上表中没有二进制的输出格式,不能使用 ...
  • 如果您只需要遍历字符,那么就不需要将字符串转换为列表。在编辑:对于隐写术,您可能有兴趣将字符流转换为位流。下面是如何使用发电机来实现这一点:^{pr2}$要将比特流转换回字符流:def grouper(n, ...
  • 十进制转换为二进制的几种方法

    千次阅读 2019-02-11 18:13:50
    这是最符合我们平时数学逻辑思维,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2…依次循环,直到商为0结束,把余数倒着依次排列,就构成了转换的二进制数。 那么,在实际实现中,可以用...
  • 用‘栈’的思想编写一个十进制转换二进制、八进制或十六进制的程序根据进制转换方法,如十进制向二进制转换,将转换的十进制整数除以二进制基数(2),得到余数和商,如果商不0,该商继续做被除数,除以基数,得到...
  • 2019开放大学网考系列二级考试教程计算机基础考试中十进制二进制、八进制和十六进制转换方法首先我们了解下进制,如下,看看就行了不用懂,如果你想研究可以搜一下,我只是介绍下考试时的方法二进制逢二进一,...
  • 上节课我们学习了十进制转换二进制的方法,那二进制转换十进制是怎么转换的呢?我们来看看下面的动图(白色为二进制,红色为十进制),你找到规律了吗? 我们这节课学习一下二进制转换十进制的方法。方法如下:将二...
  • 计算机中十进制转换为二进制的另一方法 “定位减权法”要求学者首先要熟悉20 ~210对应的十进制数值。     显而易见,对2N对应的十进制数记得越多,则用“定位减权法”处理的十进制数据就会越大,但是20~...
  • 十进制转换为二进制方法1:除二取余法 每次将整数除以二,余数为该位上权数,然后商继续除以二,余数为上一位权上数,就这样一直除下去,直到商为0为止,最后读数时,从最后一个余数开始读,一直读到最前的的...
  • 十六进制数转换为二进制数组函数HexToBinStr函数实现:void 实际应用:#include 实际运行结果:历史精选文章:Jlink使用技巧之虚拟串口功能Jlink使用技巧之读取STM32内部程序Jlink使用技巧之J-Scope虚拟示波器...
  • 如图1所示来看看十进制转八进制,有两种方法:直接法与间接法,先看直接的方法,与十进制转成二进制相同,咱们还是分整数部分转换和小数部分转换。 整数部分,除8取余法,每次将整数部分除以8...
  • 在我们接触编程知识时,总会接触有关进制转换的知识,最常见就是10进制与二进制或十六进制之间转换,很多时候我们总会遗忘,虽然现在也出现了很多可以直接使用网络在线的进制转换工具,但考试中,我们就要靠...
  • C语言递归解决十进制转换二进制

    千次阅读 2020-02-09 12:48:54
    C语言利用十进制转换为二进制的方法
  • 上节课我们学习了十进制转换二进制的方法,那二进制转换十进制是怎么转换的呢?我们来看看下面的动图(白色为二进制,红色为十进制),你找到规律了吗? 我们这节课学习一下二进制转换十进制的方法。方法如下:将二...
  • 十进制小数转换二进制小数把十进制小数转换二进制小数所采用规则是“乘以2取整数”。方法是用2乘以十进制纯小数,将其结果整数部分去掉;再用2乘余下纯小数部分,再去掉其结果整数部分;如此继续下去,...
  • 十进制转换为二进制

    2019-04-07 12:01:47
    方法:除2取余法,即每次将整数部分除以...  例:将进制的43转换为二进制的步骤如下: 将商43除以2,商21余数为1; 将商21除以2,商10余数为1; 将商10除以2,商5余数为0; 将商5除以2,商2余数为1; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,042
精华内容 816
关键字:

十进制转换为二进制的方法