riyuocr
riyuocr
采纳率0%
2016-03-28 15:03 阅读 4.0k

java-输出给定整数i的二进制补码

高手好!
我刚开始学习java,学完“结构化程序设计”章节后,遇到了一道题,如下:“完成下面的通用程序,要求能够输出给定整数i的二进制补码。
public class Example
{
public static void main(String args[])
{
int i=10;
//在这里,请写上尚未完成的程序,使得本程序在执行时能输出i的二进制补码
}
}
在网上找到一个方法是使用语句System.out.println(Integer.toBinaryString(i));
但是integer和binary string还没有在本章及之前的章节中出现过,所以想请教高手是否还有其他方法啊?谢谢啦!!!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • luochoudan 丑旦 2016-03-28 16:10

    不要局限章节吧,学前班还要念一年级的书磊。正数的原码反码补码都一样,最快的方法就是Integer.toBinaryString()

    点赞 1 评论 复制链接分享
  • wojiushiwo945you 毕小宝 2016-03-28 22:43
       这个是jdk提供的api,提前了解下呗Integer是int的包装类,封装了很多实用的数值操作方法。像这个转换二进制的方法,我们就可以直接调用就好了啊,很方便的。至于实现过程,你按下F3跟踪下源码
    
    点赞 1 评论 复制链接分享
  • devmiao devmiao 2016-03-28 15:42
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-03-28 22:18
     /* package whatever; // don't place package name! */
    
    import java.util.*;
    import java.lang.*;
    import java.io.*;
    
    /* Name of the class has to be "Main" only if the class is public. */
    class Ideone
    {
        public static void foo(int i)
        {
            if (i == 0) return;
            foo(i / 2);
            System.out.print(i % 2);
        }
        public static void main (String[] args) throws java.lang.Exception
        {
            // your code goes here
            int i = 10;
            if (i > 0) foo(i);
            if (i == 0) System.out.print(0);
            if (i < 0) foo(i + 2147483647 + 1);
        }
    }
    
    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-03-28 22:20

    http://ideone.com/vU6Bt1

    (正数的补码直接转换为二进制,负数的,先加上2^(N-1)再变二进制,对于32bit来说,N=32)

    点赞 评论 复制链接分享

相关推荐