18、字符串二进制转换

版权声明:若有错误,欢迎指正,如有借鉴,请注明出处 https://blog.csdn.net/jsc123581/article/details/81809258

编程题目:

18.现有一个32位的整型变量 value和一个有32个元素的数组a[32],

要求:

(1)对value随机赋值;

(2)让数组a[n]的值等于value“位n”的值,n属于0到31之间。

举例:如果value的“位0”(Bit0)=0,那么a[0]=0;如果value的“位10”(Bit10)=1,那么a[10]=1。

示例代码:

package program.string.exercise18;

/**
 * 18.现有一个32位的整型变量 value和一个有32个元素的数组a[32],
 *  要求:(1)对value随机赋值;
 *      (2)让数组a[n]的值等于value“位n”的值,0<=n<=31。
 *      举例:如果value的“位0”(Bit0)=0,那么a[0]=0;如果value的“位10”(Bit10)=1,那么a[10]=1。
 *
 */

public class BinaryString {
    public static void main(String[] args) {

        //产生随机数
        int value = (int) (Math.random()*Integer.MAX_VALUE+1);
        System.out.println("value:"+value);
        //转成二进制字符串
        //Integer.toBinaryString(random):将整型数字转成二进制形式字符串
        String str = Integer.toBinaryString(value);
        System.out.println(str.length());
        System.out.println(str);
        //转成二进制时最前面的零被省略,补上省略的0
        for(int i=0;i<32;i++){
            if(str.length() < 32){
                str = "0"+str;
            }
        }
        System.out.println(str.length());
        System.out.println(str);
        //给数组赋值
        int[] a = new int[32];
        for(int i=0;i<a.length;i++){
            //str.charAt(i):取第i个位置的字符(char)(i从0开始)
            //String.valueOf():将基本数据型态转换成 String类型,括号中可以是(int i)(char c)等 
            //Integer.parseInt():将String字符类型数据转换为Integer整型数据
            a[i] = Integer.parseInt(String.valueOf(str.charAt(i)));
            System.out.println("a["+i+"]=" + a[i]);
        }
    }
}

结果显示:

这里写图片描述

这里写图片描述

没有更多推荐了,返回首页