精华内容
下载资源
问答
  • 十进制转32位二进制(Java)

    千次阅读 2019-12-04 13:22:19
    十进制转32位二进制(Java),输入一个正整数N,输出一个32位的二进制数(例如输入2,输出前面30个0+10)

    十进制转32位二进制(Java)

    一、题目

    输入一个正整数N,输出一个32位的二进制数(例如输入2,输出前面30个0+10)
    如下图所示
    在这里插入图片描述

    二、代码实现

    text3.java

    
    package ch03;
    
    import java.util.Scanner;
    import ch03.SqStack;
    
    public class Test3 {
    
    	/**
    	 * @author 春
    	 * @num ……
    	 * @text 2.输入一个正整数N,输出一个32位的二进制数(例如输入2,输出30个0+10)
    	 */
    	public static void main(String[] args) throws Exception {
    	
    		Scanner scan = new Scanner(System.in);
    		System.out.print("输入十进制数为:");
    		int Dec = scan.nextInt();
    		SqStack test = new SqStack(32);
    			test.bin(Dec);
    		System.out.print("输出的二进制为:");
    			test.display();
    
    	}
    
    }
    
    

    SqStack.java

    package ch03;
    
    public class SqStack implements IStack {
    	private Object[] stackElem;
    	private int top;
    	boolean b;
    
    	public SqStack(int maxSize) {
    		top = 0;
    		stackElem = new Object[maxSize];
    	}
    
    	public void clear() {
    		top = 0;
    	}
    
    	public boolean isEmpty() {
    		return top == 0;
    	}
    
    	public int length() {
    		return top;
    	}
    
    	public Object peek() {
    		if (!isEmpty())
    			return stackElem[top - 1];
    		else
    			return null;
    	}
    
    	public Object pop() {
    		if (isEmpty())
    			return null;
    		else
    			return stackElem[--top];
    	}
    
    	public void push(Object x) throws Exception {
    		if (top == stackElem.length)
    			throw new Exception("栈满");
    		else
    			stackElem[top++] = x;
    	}
    
    	
    	public void display() {
    		if(top < 32){
    			for(int i=1; i<= 32-top; i++){
    				System.out.print("0");
    			}
    		}
    		for (int i = top - 1; i >= 0; i--)
    			System.out.print(stackElem[i].toString() + "");
    	}
    	
    	
    	public void bin(int x){
    		int n = 0;
    		while(x > 0){
    			n = x%2;
    			try {
    				push(n);
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    			x = x / 2;
    		}
    	}
    		}
    

    IStack.java

    package ch03;
    
    public interface IStack {
    	public void clear();
    
    	public boolean isEmpty();
    
    	public int length();
    
    	public Object peek();
    
    	public void push(Object x) throws Exception;
    
    	public Object pop();
    }
    

    三、测试结果

    在这里插入图片描述

    展开全文
  • 该方法返回长度为32的byte数组 byte[] bytes = new byte[32] 不是 byte[] bytes = new byte[4] public static byte[] StringToBinary(String strIP){ String stringIP = strIP.replace(".", " &...

    该方法返回长度为32的byte数组

    byte[] bytes = new byte[32] 不是 byte[] bytes = new byte[4]

    public static byte[] StringToBinary(String strIP){
            String stringIP = strIP.replace(".", " ");//用空格取代点
            String[] stringIP_Splits = stringIP.split(" ");  //将IP地址字符串以空格切割
    
            StringBuffer ipV4 = new StringBuffer(); //创建一个StringBuffer来拼接字符串
    
            for (String string : stringIP_Splits) {
                int parseInt = Integer.parseInt(string);
                String string3 = Integer.toBinaryString(parseInt);
    //          System.out.println(string3); //输出二进制字符串
                int length; //     判定长度为8位,不足8位,前面补0
                if((length=string3.length())<8){
                    for (int i = 0; i < 8-length; i++) {
                        ipV4.append("0");
                    }
                }
                ipV4.append(string3);
            }
            System.out.println(ipV4.toString()); 
    
            byte[] bs = ipV4.toString().getBytes();
            return bs;
        }
    展开全文
  • 假设需要编写一个程序,实现32位二进制IP地址(32个字符长的1和0)转换为点分十进制格式并输出。IP地址的点分十进制格式通过将32位从低位到高位(右到左)一次分组八位,总共分4次,任何8位二进制数对应的十进制数都...

    问题描述:
    假设需要编写一个程序,实现32位二进制IP地址(32个字符长的1和0)转换为点分十进制格式并输出。IP地址的点分十进制格式通过将32位从低位到高位(右到左)一次分组八位,总共分4次,任何8位二进制数对应的十进制数都是IP地址的有效部分。

    C语言实现代码:

    /*
    问题描述:
    假设正在读取表示IP地址的字节流,任务是将32个字符长的1和0(位)序列转换为点分十进制格式,IP地址的点分十进制
    格式是通过将32位字节流一次分组8位,并将二进制表示转换为十进制表示形式 
    */
    #include <stdio.h>
    #include <string.h>
    #define base 2
    int main(void)
    {
     int n;
     printf("请输入需要将32位二进制IP地址转化为点分十进制格式的数量:");
     scanf("%d",&n);
     for(int i=0;i<n;i++)
     {
      char s[40];
      int sum=0,flag=0;//flag为控制分隔符"."的输出 
      scanf("%s",s);
      for(int j=0;j<strlen(s);j++)
      {
       sum=sum*base+s[j]-'0';//此处是重点,每8位二进制数转换为十进制数
       if(j%8==7)//当j=7,15,23,31时开始输出 
       {
        if(flag)
        {
         printf(".");//输出第一个八位二进制对应的十进制数时,不输出"."
        }
        printf("%d",sum);
        sum=0;//sum置零,运算第二个八位二进制对应的十进制数 
        flag=1;//从第二个开始输出"." 
       }
      }
      printf("\n");
     }
     return 0;
    }

    输出结果:
    在这里插入图片描述

    展开全文
  • 十进制转二进制: 首先找临近这个数字最近的2的次方。 128 64 32 16 8 4 2 1 比如13 = 8 + 4 + 1,参与相加的数字上写1,未参与相加的数字上写0。 则13的二进制为1101。 同理123 =...

    十进制转成二进制:

    首先找临近这个数字最近的2的次方。

    128 64 32 16 8 4 2 1

    比如13 = 8 + 4 + 1,参与相加的数字位上写1,未参与相加的数字位上写0。

    则13的二进制为1101。

    同理123 = 64  + 32 +16 + 8 + 2 +1,则123的二进制为0111 1011

    二进制转八进制

    已知13的二进制为00001101,将13的二进制每三个一组,不够三位的补全。

                                                   000  001  101

                                                   0      2^0   2^0+2^2

                                                    0       1      5

    则13的八进制为015

    二进制转十六进制 十六进制 1 2 3 4 5 6 7 8 9 a b c d e f

    某二进制数为1011001010110101011111,每四位一组,不够四位的补全。

    0010               1100                    1010               1101                 0101           1111

    2^1             2^2+2^3                2^1+2^3        2^0+2^2+2^3      2^0+2^2       2^0+2^1+2^2+2^3

    2                     c                        a                     d                        5                    f

    则该数16进制为:0x2cad5f

     

     

     

     

     

     

    展开全文
  • 二进制 十进制 十六进制 二进制数 : 0110 0011 转十进制 0 1 1 0 0 0 1 1 128 64 32 16 8 4 2 1 64 + 32 + 2 + 1 = 99 十进制为99 十六进制 (每一个字节(4)是一个十六进制数(1~f)...
  • 问题1:将十进制转换为二进制。 例:输入十进制5 输出二进制0000 0000 0000 0000 0000 0000 0000 0101 问题2:将十进制转换为八进制。 例:输入十进制5 输出八进制0x00000005
  • 想写一个输入任意十进制数,然后可以转为前高后低和前低后高两种格式,32位存储的二进制数据。然后再将这两种格式的32位二进制数据正确读取出来。
  • 利用运算进行进制间的转换#include #include int inttoBin(unsigned int num) { int i; unsigned int mask = 0x80000000; for(i = 0; i < 32; i++) { if((num & mask) == mask) { printf("1"); } ...
  • 十进制转二进制: 用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 ...
  • 二进制十进制相互转换、运算记录下在codewar上做的一个题目和收获128.32.10.1 == 10000000.00100000.00001010.00000001Because the above IP address has 32 bits, we can represent it as the unsigned 32 bit ...
  • 一、十进制转换成二进制 1、正整数转二进制 要点:除二取余,倒序排列,高位补零。 方法:将正的十进制数除以二,得到的商再除以二,依次类推直至商为0或1时为止,然后在旁边标出各步的余数,最后倒着写出来,高位...
  • 正整数的十进制转换二进制将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。只需记住要点:除二取余,倒序排列。由于计算机内部表示数的字节单位...
  • (一)计算机的数制一、数制就是用统一的方法计数1.十进制 数值是0~9 逢十进一2....十六进制 数值0~9 A~F 逢十六进一二、数一个数字所在的位置1000 4 个0 十1 百2千310101 二进制 5 01234三、基数基数是数制中...
  • Reverse bits of a given 32 bits unsigned integer. For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as
  • 正整数的十进制转换二进制将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。只需记住要点:除二取余,倒序排列。由于计算机内部表示数的字节单位...
  • 网络中计算机的32位IPv4地址以二进制显示,也会以点分十进制显示。而IPv6的地址是128位,是由数字和A-F组成的十六进制系统。因此,了解并且学会在其三者之间相互转换是非常重要的,让我们能够更好的了解它们。二进制...
  • 1)整数的范围取决于机器是32位还是64位,长整数的范围是取决于虚拟内存的大小 2)整数一般以十进制表示,但是python也支持八进制(0开始)或十六进制(0x开始)来表示整数 进制转换 命令 转二进制 bin(10...
  • - - - - - - - N 进 制 十 进 制 - - - - - - -在以阿拉伯数字和英文字母为数字符号的值制记数系统中,基于值原理,可将非十进制的N进制如下转化为十进制——①二进制:数字符号含0、1,位置值为2的整数次幂...
  • (一)二进制转十进制 如:  66 = 64 + 2;  128 64 32 16 8 4 2 1  0 1 0 0 0 0 1 0 负十进制转换为二进制的方式  1)先将该整数的绝对值转换为二进制,然后进行按取反再加1.  如:  -...
  • 1、计算机的数制介绍数制:计数的方法,指用一组固定的符号和统一的规则来表示数值的...2、数制的表示方法3、数制的计算4、进制之间的转换4.1、正整数的十进制转换二进制将一个十进制数除以二,得到的商再除以二,依...
  • 十进制转换为二进制: 方法1:除二取余法 每次将整数除以二,余数为该位上的权数,然后...方法二:根据一个十进制数的组成写出其二进制,一个32位系统低八位的值分别是128,64,32,16,8,4,2,1.从大往小选择,选择可以...
  • 基数: 每个进制的基数 比如十进制是10 二进制是2 二进制权:固定位置对应的单位值。比如一个数字从右往左从0开始递增 1.将二进制数转换成十进制 转换规则: 展开权进行求和运算 100110 1x2^5+0x2^4+0x2^3+1x2...
  • 1、先看10-->...int类型的数据有32位,16进制用4位二进制表示一位。用int的二进制数依次 & 15 ,结果倒序就是16进制数,如图 代码如下: publicstaticvoidmain(String[]args){ toHex(60);...
  • 负数十进制转二进制

    千次阅读 2017-03-30 13:57:13
    负数十进制转二进制 三部 (1)先将十进制转为二进制数: 例:(-10)10=(00000110)2 带符号 (2)将二进制数取反: 取反得11111001 (3)将取得得反码加一: 得:11111010; 即(-10)10=...
  • 1.什么是进制转换 进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本...2.二进制 权:一个字节表示八个比特,这八个比特分别代表的权是 128 64 32 16 8 4 2 1 ,即128=2^7, 64=2^6...

空空如也

空空如也

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

十进制转32位二进制