A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 沙漠侧行者 中级黑马   /  2014-5-6 00:06  /  2108 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如题,如何在Java中表示一个二进制数?

9 个回复

倒序浏览
0 和 1 看你什么数。
回复 使用道具 举报

RE: 二进制数在Java中是如何表示的?

skill20 发表于 2014-5-6 00:16
0 和 1 看你什么数。

你能否写一段二进制数运算的代码?
回复 使用道具 举报
沙漠侧行者 发表于 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的二进制。
复制代码
回复 使用道具 举报

RE: 二进制数在Java中是如何表示的?


看来你还是没我理解我的意思 我的意思是一个二进制数是怎么在java代码中表示的并且在代码中参与运算的
回复 使用道具 举报
沙漠侧行者 发表于 2014-5-6 11:03
看来你还是没我理解我的意思 我的意思是一个二进制数是怎么在java代码中表示的并且在代码中参与运算的 ...

哦,那不好意思。
回复 使用道具 举报
java不显示地支持二进制数字,因为二进制的数字比较长,你可以考虑使用八进制或十六进制,这两种转换成二进制都比较方便.
可以用
八进制用0开头,比如:012就是十进制的10
十六进制用0x开头,比如:0x12就是十进制的18

也可以用Integer.toBinaryString().
回复 使用道具 举报
如楼上所说的,例如,在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();
回复 使用道具 举报
ava不显示地支持二进制数字,因为二进制的数字比较长,你可以考虑使用八进制或十六进制,这两种转换成二进制都比较方便.
可以用
八进制用0开头,比如:012就是十进制的10
十六进制用0x开头,比如:0x12就是十进制的18

也可以用Integer.toBinaryString().
回复 使用道具 举报
你可以用String类保存二进制数据,然后在进行操作
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马