首页 > 代码库 > 实现以(-2)代替2为底的二进制表示

实现以(-2)代替2为底的二进制表示

二进制:10 =(1010) = 2^3+2^1

-2为底:10 = (11110) = (-2)^4+(-2)^3+(-2)^2+(-2)^1

求输入一个值(十进制),求出对应的以-2为底的二进制码。

 

实现如下:

package com.dongbin.Impl;import java.util.Arrays;/** * 实现以-2为底的表示 *  * @author dongbin * */public class Demo1 {    public static void main(String[] args) {        System.out.println(Fuer(10).reverse());    }    public static StringBuffer Fuer(int m) {        StringBuffer sb = new StringBuffer();        while (m != 0) {            if (m % (-2) == 0) {                sb.append(0);                m = m / (-2);            } else {                sb.append(1);                if (m < 0) {                    m = (m - 1) / (-2);                } else {                    m = m / (-2);                }            }        }        return sb;    }}

 

实现以(-2)代替2为底的二进制表示