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还没有在本章及之前的章节中出现过,所以想请教高手是否还有其他方法啊?谢谢啦!!!

http://zhidao.baidu.com/link?url=LYH5V3DsyfFmv7NkYyE6AF88-GvcI9Ox9zuBmr71YlN_4nsrW_b4QkuOiF4KHj1gaZAJdmmyf7LJ0IEalwQow_

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

 /* 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);
    }
}

http://ideone.com/vU6Bt1

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

   这个是jdk提供的api,提前了解下呗Integer是int的包装类,封装了很多实用的数值操作方法。像这个转换二进制的方法,我们就可以直接调用就好了啊,很方便的。至于实现过程,你按下F3跟踪下源码