精华内容
下载资源
问答
  • 这里二进制数有两种表示方式,不同方式的代码略有不同: 1.将二进制数用boolean数组表示 假设要求解的二进制数为:1101(也就是十进制数13) public class TransformTseting { public double TransformBin2Int...

     

    这里二进制数有两种表示方式,不同方式的代码略有不同:

    1.将二进制数用boolean数组表示

    假设要求解的二进制数为:1101(也就是十进制数13)

    public class TransformTseting {
    
        public double TransformBin2Int(boolean[] Gene){
            double Result=0;
            double tmp2=0;
            for (int i = 0; i <Gene.length ;i++)
            {
                if (Gene[i])
                {
                    tmp2=Result+Math.pow(2,(Gene.length-1-i));
                    Result=tmp2;
                }
            }
            return Result;
        }
    
        public static void main(String[] args) {
            boolean[] Gene={true,true,false,true};
            System.out.println(new TransformTseting().TransformBin2Int(Gene));
        }
    }

    代码运行的结果为

     2.将二进制数用int数组表示

    假设要求解的二进制数为:1101(也就是十进制数13)

    public class TransformTseting {
    
        public double TransformBin2Int(boolean[] Gene){
            double Result=0;
            double tmp=0;
            for (int i = 0; i <Gene.length ;i++)
            {
               tmp=Result+Gene[i]*Math.pow(2,(Gene.length-1-i));
               Result=tmp;
    
            }
            return Result;
        }
    
        public static void main(String[] args) {
            boolean[] Gene={1,1,0,1};
            System.out.println(new TransformTseting().TransformBin2Int(Gene));
        }
    }

    代码运行的结果为:

     

    展开全文
  • Java二进制表示

    万次阅读 2015-05-11 20:02:49
    java中负数的二进制表示,以及右移 >>> >>

    1.Java中定义两个数,然后分别打印出它们的二进制表示:

    		System.out.println("Java二进制7: "+Integer.toBinaryString(7));
    		System.out.println("Java二进制-7: "+Integer.toBinaryString(-7));
    输出:

    Java二进制7: 111
    Java二进制-7: 11111111111111111111111111111001

    可以看到Java中对于数的表示属于有符号的,那么这个是怎么来的?

    7好办,直接是111

    -7转化二进制的过程:

    (1)把-7转化成7,二进制是 111

    (2)Java中对于不满32位的int二进制自动补齐,所以变成了 (29个0)111

    (3)然后取反  (29个1)000

    (4)然后加1 (29个1)001

    这就是-7的整个转化过程,那么现在有一个问题,我有一个文本文件,每一行有八位二进制,表示的范围是(0~255),也就是用一个字节表示的无符号整数,我现在要把这些二进制转化成整数存到文件里应该怎么做?

    文件:

    line1    11111110     (254)

    line2    00000000     (0)

    假设我用Java读进了第一行,那么我直接打印出来的值是-2,不符合我们的要求,这时让-2变254有两种办法:

    (1)用Java自带的方法,Byte.toUnsignedInt((byte) -2)(ps.-2的二进制表示就是line1),这样我们打印出来的就是254了

    		System.out.println(Byte.toUnsignedInt((byte) -2));
    输出:254

    (2)让-2与255做与(-2&255)

    		System.out.println(-2&255);
    输出:254

    第二种方法的原理:

    Java中-2的二进制表示:11111111111111111111111111111110(这个二进制的后八位就是line1,我们直接打印的话Java把其当做了负数 -2)

    Java中255的二进制表示:00000000000000000000000011111111(24个‘0’,8个‘1’)

    做与后变为:00000000000000000000000011111110

    这样做与后表示的数就是正数了 254。可以想一下,假设我们每一行用2个字节表示一个无符号数,那么我们把每一行变成正整数用方法2怎么做?


    2.Java中的>>和>>>

    '>>' 算术右移,向右移左边补符号位

    '>>>' 逻辑右移,向右移左边补0

    		System.out.println("Java二进制-7: "+Integer.toBinaryString(-7));
    		System.out.println("-7>>2: "+Integer.toBinaryString(-7>>2));
    		System.out.println("-7>>>2: "+Integer.toBinaryString(-7>>>2));
    输出:
    Java二进制-7: 11111111111111111111111111111001
    -7>>2: 11111111111111111111111111111110
    -7>>>2: 111111111111111111111111111110 //正常应该这样(00)111111111111111111111111111110左边的两个0不显示



    展开全文
  • //按10位十六进制输出,向右靠齐,左边用0补齐 System.out.printf("%010o\n",x);//按10位八进制输出,向右靠齐,左边用0补齐 将得到以下输出 000000000f 0000000017 System.out.printf("%x\n",x...

    System.out.printf(format, args);

    System.out.printf("%010x\n",x);//按10位十六进制输出,向右靠齐,左边用0补齐

    System.out.printf("%010o\n",x);//按10位八进制输出,向右靠齐,左边用0补齐
    将得到以下输出
    000000000f
    0000000017

    System.out.printf("%x\n",x);//按16进制输出
    System.out.printf("%o\n",x);//按8进制输出

    结果:

    f
    17

    注意在设置格式的print语句里不能用println,会报错。

    这类语句不适用于输出二进制数。

    输出二进制数的方法:

    String s=Integer.toBinaryString(x);

    把整数x转成二进制数,以字符串表示,再输出字符串

    定义二进制数的方法:

    二进制数 可以用0b来表示,0b后面的数字不能有超过1或小于0的数,也就是说只能有0或者1。

    int a8=0b11111111;
    System.out.println(“二进制255等于”+a8);

    输出结果:

    二进制255等于255

    赋值八进制数和十六进制数的方法如下

    int b=071;//赋值八进制数,前面加0
    System.out.println("b = " + b);
    int i = 0x00000011; //赋值十六进制数,前面加0x
    System.out.println("i = " + i);

    输出结果是:

    b = 57
    i = 17

    其他一些设置格式的语句:

    <span style="white-space:pre">	</span>// 定义一些变量,用来格式化输出。  
            double d = 345.678;  
            String s = "你好!";  
            int i = 1234;  
            // "%"表示进行格式化输出,"%"之后的内容为格式的定义。  
            System.out.printf("%f", d);// "f"表示格式化输出浮点数。  
            System.out.println();  
            System.out.printf("%9.2f", d);// "9.2"中的9表示输出的长度,2表示小数点后的位数。  
            System.out.println();  
            System.out.printf("%+9.2f", d);// "+"表示输出的数带正负号。  
            System.out.println();  
            System.out.printf("%-9.4f", d);// "-"表示输出的数左对齐(默认为右对齐)。  
            System.out.println();  
            System.out.printf("%+-9.3f", d);// "+-"表示输出的数带正负号且左对齐。  
            System.out.println();  
            System.out.printf("%d", i);// "d"表示输出十进制整数。  
            System.out.println();  
            System.out.printf("%o", i);// "o"表示输出八进制整数。  
            System.out.println();  
            System.out.printf("%x", i);// "d"表示输出十六进制整数。  
            System.out.println();  
            System.out.printf("%#x", i);// "d"表示输出带有十六进制标志的整数。  
            System.out.println();  
            System.out.printf("%s", s);// "d"表示输出字符串。  
            System.out.println();  
            System.out.printf("输出一个浮点数:%f,一个整数:%d,一个字符串:%s", d, i, s);  
            // 可以输出多个变量,注意顺序。  
            System.out.println();  
            System.out.printf("字符串:%2$s,%1$d的十六进制数:%1$#x", i, s);  
            // "X$"表示第几个变量。  
    

    结果:

    345.678000
    345.68
    +345.68
    345.6780
    +345.678
    1234
    2322
    4d2
    0x4d2
    你好!
    输出一个浮点数:345.678000,一个整数:1234,一个字符串:你好!
    字符串:你好!,1234的十六进制数:0x4d2

    展开全文
  • Java两个二进制数求和

    2021-02-09 15:47:28
    二进制数仅以“ 0”和“ 1”表示。没有其他数字。如果一个数字的数字不为0和1,则它不是二进制数字。我在互联网上看到很多例子,它们都只显示程序,但给出了解释。在这里,它与按位与运算符不同。它看起来像&运算符...

    1.简介


    在本教程中,您将学习一个Java程序,了解如何对两个二进制数求和。二进制数仅以“ 0”和“ 1”表示。没有其他数字。如果一个数字的数字不为0和1,则它不是二进制数字。我在互联网上看到很多例子,它们都只显示程序,但给出了解释。在这里,它与按位与运算符不同。它看起来像&运算符,但不是。您将在本文中得到澄清。不要跳过任何内容,也不要直接看到代码。
     

     






    通常,这可以通过两种方式完成。首先,我们不使用任何Java API方法,而仅使用交换理论与逻辑设计(STLD)主题中的工程概念,而第二种方法是使用Integer API完成的。

    在编写用于加法的程序之前,让我们看一下如何在纸上进行加法,如下图所示:
    在Java中添加二进制数

    二进制数序列加法如下。

    将两个二进制“ 1”(例如1 + 1)相加会产生十进制数字2,但我们应将其转换为二进制数10。这里0是实际的总和,而1是一个进位。
    0 + 0将产生0
    0 + 1-> 1
    1 + 0-> 1

    在这里,所有输出均应为二进制数字,并且不允许使用十进制数字。

    2.示例算法演练:在Java中添加两个Binay数


    以两个二进制数进行演示。

    binaryNumber1 = 10101
    binaryNumber2 = 10001
    进位= 0
     

    迭代1:


    1010 1
    1000 1

    进位+
    二进制数1的第一个数字+二进制数2的第一个数字0 +1 + 1 = 10(这是一个二进制数),这里是进位+总和的组合。所以在这里进行如下求和。
    进位= 1
    首位总和= 0
     

    迭代2:


    101 0 1
    100 0 1

    进位(来自上一步)+二进制数
    1的第二位+二进制数2的第二位1 + 0 + 0 = 01
    进位= 0
    第二位总和= 1
     

    迭代3:


    10 1 01
    10 0 01

    进位(来自上一步)+二进制数
    1的第三位+二进制数2的第三位0 +1 + 0 = 01
    进位=
    第三位总和= 1

     

    迭代4:


    0 101
    0 001

    进位(来自上一步)+二进制数1的第四位+二进制数2的第四位
    0 + 0 + 0 = 0
    进位= 0
    第四位总和= 0
     

    迭代5:


    1 0101
    1 0001

    进位(来自上一步)+二进制数
    1的第五位+二进制数2的第五位0 +1 + 1 = 10
    进位= 1
    第五位总和= 0

     

    输出:


    公式: 进位+所有数字总和(第五位数字总和第四位数字总和第三位数字总和第二位数字总和第一位数字总和) 100110


     

    3.添加两个二进制数的示例程序

    上面的示例值将传递给该程序并产生相同的输出。
     

    public class AddBinaryNumbers {
    
    	public static void main(String[] args) {
    
    		// two binary numbers
    		long binaryNumber1 = 10101, binaryNumber2 = 10001;
    
    		// i represents the index of the finalSumOutput array.
    		int i = 0;
    
    		// carry which is to hold the value of carry.
    		int carry = 0;
    
    		// Created int array to hold the output binary number
    		int[] finalSumOutput = new int[10];
    
    		while (binaryNumber1 != 0 || binaryNumber2 != 0) {
    
    			finalSumOutput[i++] = (int) (carry + (binaryNumber1 % 10 + binaryNumber2 % 10) % 2);
    
    			carry = (int) ((binaryNumber1 % 10 + binaryNumber2 % 10 + carry) / 2);
    
    			binaryNumber1 = binaryNumber1 / 10;
    			binaryNumber2 = binaryNumber2 / 10;
    		}
    		if (carry != 0) {
    			finalSumOutput[i++] = carry;
    		}
    		--i;
    		System.out.print("Output: ");
    		// printing from the last index to 0.
    		while (i >= 0) {
    			System.out.print(finalSumOutput[i--]);
    		}
    		System.out.print("\n");
    	}
    
    }


    输出:
     

    100110

     

    4.添加二进制数的第二种方法


    Java API Integer类具有parseInt()方法,该方法采用字符串和基数。如果我们传递基数值2,则它将考虑字符串值的二进制数。接下来,我们执行sum并将输出int值传递给toBinaryString()方法,该方法将整数转换回二进制数。我们需要二进制格式的期望输出。

    让我们看看下面的程序。
     

    public class AddBinaryNumbersWay2 {
    
    	public static void main(String[] args) {
    
    		// two binary numbers in string format
    		String binaryNumber1 = "10101", binaryNumber2 = "10001";
    
    		// converting strings into binary format numbers
    		Integer integer1 = Integer.parseInt(binaryNumber1, 2);
    		Integer integer2 = Integer.parseInt(binaryNumber2, 2);
    
    		// adding two integers
    		Integer output = integer1 + integer2;
    
    		// converting final output back to Binary Integer
    		System.out.println(Integer.toBinaryString(output));
    
    	}
    
    }


    输出:

    两种方法都采用相同的输入。观察者的输出也相同。两者都产生预期的结果。

     

    100110
     
     

     

    5.结论


    在本文中,您已经学习了如何编写一个Java程序来添加两个二进制数。这可以通过两种方式完成。第一种方法是不使用任何Java API方法,而完全使用交换理论与逻辑设计(STLD)逻辑。第二种方法是使用Integer包装类基数选项。
    展开全文
  • Java - 输出二进制数字

    万次阅读 2015-07-10 09:17:17
    输出二进制数字, 标准库函数: Integer.toBinaryString().... * 二进制数打印 */class MyClass { // 替代Integer.toBinaryString() public static String toBinaryString(int num) { if (num == 0
  • 1.进制  进制是一种记数方式 ,可以用... 二进制: 由0和1两个数字组成。  八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。  十进制: 都是以0-9这九个数字组成,不能以0开头。  ...
  • 输入一个十进制数可以转化成二进制,八进制,十六进制。.java格式的右键编辑可以打开。
  • java二进制转化为十进制Here you will get program to convert binary to decimal in Java. 在这里,您将获得在Java中将二进制转换为十进制的程序。 There are mainly two ways to convert a binary number to ...
  • 二进制表示方法: 由0,1组成。以0b开头(注意是数字0而不是字母o) 八进制的表示方法: 由0,1,2,3,4,5,6,7组成。以0开头 十进制的表示方法: 由0,1......,9组成。默认整数。 十六进制的表示方法: ...
  • 使用JAVA计算二进制1的个数 作业内容 求一个整数,在内存当中存储时,二进制1的个数。 import java.util.Scanner; /* * *@author Q * @create 2020-04-13-16:55 */ public class count_1 { public static void ...
  • * @Description: 十进制转换成二进制 () * @param decimalSource * @return String */ public static String decimalToBinary(int decimalSource) { BigInteger bi = new BigInteger(String.valueOf(decimalSource))...
  • 主要介绍了解决Java中的强制类型转换和二进制表示问题,需要的朋友可以参考下
  • 十进制数转二进制数,跟据不同的开发语言其转换方式有很多,在Java中如果相把一个十进制的整数来转换成二进制那是举手之劳,非常简单,只要用Integer.toBinaryString(int)方法就可以得到结果。但如果转换的不是一个...
  • 最近由于工作上的需要,遇到进制转换的问题。涉及到的进制主要是 十进制,十六进制,二进制中间的转换。还包括了一个字节数组 与十六进制字符串的互相转换。估计遇到蓝牙通信的朋友,应该用的上。
  •  给定一个十进制整数,返回其对应的二进制数的位数。例如,输入十进制数9,其对应的二进制数是1001,因此位数是4。 样例输入 一个满足题目要求的输入范例。 9 样例输出 与上面的样例输入对应的输出。 数据规模和...
  • 一、java支持十进制、八进制和十六进制,但是不支持二进制java支持十进制:java表示十进制不需要对数字有任何处理//java表示十进制 inta=13; System.out.println("java表示十进制:"+a);运行结果:java支持八进制:...
  • java实现二进制转十六进制

    千次阅读 2017-07-29 22:50:51
    java实现二进制转十六进制
  • 进制数转(二进制,八进制,十六进制)写在前面进制转换(数学方法)1、 转换为二进制算法解析算法源码2、 转换为八进制算法解析算法源码3、 转换为十六进制算法解析算法源码欢迎评论区评论字符拼接算法工具类源码...
  • 统计整数的二进制表示形式中有几个1(java实现),代码中有三种方法,分别是利用除、余的方法,位运算,以及利用“与”运算的方法。其中第三种方法效率最高,二进制数中有几个1,算法中的循环内的运算就执行几次。
  • java 负数的二进制表示

    千次阅读 2019-06-26 20:18:04
    计算机对有符号(包括浮点数)的表示有三种方法:原码、反码和补码,三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负” 反码:原码按位取反 补码:反码+1 移码:移码(又叫增码)是...
  • 二进制:以0b开头(零和b)的数表示二进制 八进制:以"0"(零)开头的表示八进制 十进制:平时表示的方法便是十进制 十六进制:以0x开头的便是十六进制 如: public class Test{ public ...
  • 依次循环,直到商为0结束,把余数倒着依次排列,就构成了转换后的二进制数。 那么,在实际实现中,可以用int的一个数来存储最后的二进制,每次求余后把余数存储在int型数的低位,依次递增。 1 public void
  • 任意输入一个十进制整数,包括正数负数,通过程序实现可以输出相应的二进制编码
  • 正整数相乘的结果居然出现了负数,要理解这个行为,我们需要看下整数在计算机内部的二进制表示...... 负数的二进制表示看上去可能比较奇怪和难以理解,但这种表示其实是非常严谨和正确的,是不是很奇妙?
  • JAVA 实现十进制转二进制 方法汇总

    万次阅读 2018-12-25 21:08:37
    目录   一、方法引用 二、代码编写 ... //将n转化为二进制s,s是字符串 int a = Integer.valueOf(s); int b = Integer.parseInt(s); //这是两种将字符串转化为整形的方法,若n是31,结果都为11111...
  • 整数转二进制补码的源代码 提供了两种方法:一种调用java api中的方法。另一种是自己实现的。
  • java实现十进制与二进制小数的互转机制   本篇博客主要讲述用java实现十进制与二进制小数的互转(不调用java自带的函数)。后期可能会用MATLAB实现,因为我们信息安全的一个实验是要求用MATLAB实现的。 要求 ...
  • Java负数二进制表示

    2019-10-19 20:12:24
    Java中负整数的二进制表示方法为先将负数的相应正数用二进制表示,之后对二进制取反,最后对二进制数加一即为最后结果 案例: -5转换过程: 5的二进制表示为00000000,00000000,000000000,00000101 先取反为:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 276,222
精华内容 110,488
关键字:

java表示二进制数

java 订阅