黑马程序员技术交流社区

标题: 二进制数在Java中是如何表示的? [打印本页]

作者: 沙漠侧行者    时间: 2014-5-6 00:06
标题: 二进制数在Java中是如何表示的?
如题,如何在Java中表示一个二进制数?
作者: skill20    时间: 2014-5-6 00:16
0 和 1 看你什么数。
作者: 沙漠侧行者    时间: 2014-5-6 00:52
标题: RE: 二进制数在Java中是如何表示的?
skill20 发表于 2014-5-6 00:16
0 和 1 看你什么数。

你能否写一段二进制数运算的代码?
作者: skill20    时间: 2014-5-6 10:52
沙漠侧行者 发表于 2014-5-6 00:52
你能否写一段二进制数运算的代码?
  1. 0000-0000 0000-0000  0000-0000  0000-0110   ----  整数6的二进制。
  2. + 0000-0000 0000-0000  0000-0000  0000-1111   ----  整数15的二进制。要对 6 + 15。
  3. -----------------------------------------------
  4.    0000-0000 0000-0000  0000-0000  0001-0101   ------ 整数21的二进制。
复制代码

作者: 沙漠侧行者    时间: 2014-5-6 11:03
标题: RE: 二进制数在Java中是如何表示的?
skill20 发表于 2014-5-6 10:52

看来你还是没我理解我的意思 我的意思是一个二进制数是怎么在java代码中表示的并且在代码中参与运算的
作者: skill20    时间: 2014-5-6 11:42
沙漠侧行者 发表于 2014-5-6 11:03
看来你还是没我理解我的意思 我的意思是一个二进制数是怎么在java代码中表示的并且在代码中参与运算的 ...

哦,那不好意思。
作者: 二小傻    时间: 2014-5-6 11:47
java不显示地支持二进制数字,因为二进制的数字比较长,你可以考虑使用八进制或十六进制,这两种转换成二进制都比较方便.
可以用
八进制用0开头,比如:012就是十进制的10
十六进制用0x开头,比如:0x12就是十进制的18

也可以用Integer.toBinaryString().
作者: Bevin    时间: 2014-5-6 22:14
如楼上所说的,例如,在Java中如果相把一个十进制的整数来转换成二进制那是举手之劳,非常简单,运用String函数,只要Integer.toBinaryString(int)方法就可以得到结果。代码如下:
class  Demo1
{
        public static void main(String[] args)
        {
                        System.out.println(Integer.toBinaryString(60));
        }
}
    
      但如果转换的不是一个整数,而是一个带小数部分的十进制数,那就没有那么容易了。由于整数和小数的转换方式不同,所以先将十进制数的整数部分和小数部分分别转换后,再合并转换后的结果即得到想要的结果。十进制数转二进制数的算法如下:        
 1. 十进制整数转换为二进制整数   
    十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。 
 2.十进制小数转换为二进制小数   
     十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位。
后面自己慢慢摸索其他进制转换的运算符吧。
十进制转成十六进制:  Integer.toHexString(int i) ;
十进制转成八进制  Integer.toOctalString(int i);
十进制转成二进制  Integer.toBinaryString(int i);
十六进制转成十进制  Integer.valueOf("FFFF",16).toString();
八进制转成十进制  Integer.valueOf("876",8).toString();
二进制转十进制  Integer.valueOf("0101",2).toString();
作者: GGdog    时间: 2014-5-6 23:01
ava不显示地支持二进制数字,因为二进制的数字比较长,你可以考虑使用八进制或十六进制,这两种转换成二进制都比较方便.
可以用
八进制用0开头,比如:012就是十进制的10
十六进制用0x开头,比如:0x12就是十进制的18

也可以用Integer.toBinaryString().
作者: 奇迹    时间: 2014-5-9 02:59
你可以用String类保存二进制数据,然后在进行操作




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2