将一个数用2的幂次方和表示

1.题目描述:

将非负十进制整数n转换成b进制。(其中b=2~16)

2.解题思路:

给定一个数n,通过每次求余b,依次得到转换为对应b进制的逆序序列。
(1)当b<=10时,按照上述说法依次执行,用n求余b,存放在字符数组中,
然后n除以b,直到n为0.
(2)当b>10时,若n求余b大于9,要表示成A,B,C,D,E,则在这种情况下, 对于求余的结果做’A’+(mod%10)的处理。比如mod=11,得到此次的结果为
‘A’+1,为B.

3.代码展示:

import java.util.Scanner;

public class Two {

    //  非递归实现
    public static String fun1(int n){
        int [] loc=new int[31];
        for (int i=0;i<31;i++){
            if ((n&(1<<i))!=0){
                loc[i]=1;
            }
        }
        StringBuilder re=new StringBuilder("");
        for (int i=0;i<31;i++){
            if (loc[i]==1){
                String t="2(";
                if (i<2){
                    t+=i;
                }else {
                    t+=fun1(i);
                }
                re.append(t+")+");
            }
        }
        return re.toString().substring(0,re.length()-1);
    }

    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        String re=fun1(n);
        System.out.println(re.replaceAll("\\(1\\)",""));
    }

}

### 回答1: 是的,任何一个正整都可以用2的次方表示。 这是因为我们可以将一个正整表示为二进制形式,然后将其中的每一位都表示为 $2^i$,其中 $i$ 是该位在二进制中的位置。例如,字 13 的二进制形式为 1101,因此可以将 13 表示为 $2^3+2^2+2^0$,即 $2^3+2^2+1$。 因此,我们可以看出,每个正整都可以表示为不同次方的和,而这些次方都是2的整,因此可以用2的次方表示。 ### 回答2: 对于一个正整n,我们可以不断将它除以2,直到商为1为止。例如,对于n=12,我们可以进行以下操作: 12 ÷ 2 = 6,余0 6 ÷ 2 = 3,余0 3 ÷ 2 = 1,余1 于是,我们就可以将12表示为2的次方的形式:$12=2^2\times3^1$。其中2的为2,对应的指就是我们进行除2操作的,即3。 事实上,对于任何一个正整n,都可以表示为2的次方的形式。这是因为,我们可以一直将它除以2,直到商为1为止。这样的操作一定可以进行,因为每除以2之后商一定减半,最终一定会变1。 然后,我们可以将这个正整表示为一系列指的乘积。每将该除以2,就相当于将它的因式分解中2的指加1。例如,对于n=12,我们可以依得到以下因式分解: $12=2\times6=2\times2\times3=2^2\times3^1$ 其中,2的指就是我们进行除2操作的,即3。 因此,任何一个正整都可以用2的次方表示。这个结论在计算机科学中有着重要的应用,因为计算机硬件内部的表示方式就是使用二进制的2的次方。 ### 回答3: 任何一个正整都可以用2的次方表示,这是因为在十进制中,每一位的值只有0~9这10个可能,而在二进制中,每一位的值只有0和1这两个可能。因此,我们可以将一个正整表示为二进制的形式,其中每一位表示2的次方。例如,10可以表示为1010,即$2^3+2^1=8+2=10$,22可以表示为10110,即$2^4+2^2+2^1=16+4+2=22$。 我们可以通过二进制的位权表示法来证明任何一个正整都可以用2的次方表示。位权表示法是指将一个表示各位与其位权(指)的乘积之和的形式,例如10的位权表示法为$1\times 10^1+0\times 10^0$。在二进制中,每一位的位权是2的次方,因此可以用位权表示表示任何一个二进制。那么,对于任意一个正整,我们可以将其转化为二进制,并按照位权表示表示出来,即可证明它可以用2的次方表示。 另外,根据二进制的特性,任何一个正整都可以表示为若干个2的次方的和,而这些次方是互不相同的。这是因为,如果两个次方相同,那么它们对应的二进制在该位上都为1,此时它们的和可以转化为一个更大的2的次方。因此,任何一个正整都可以用2的次方表示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值