java:将30个元素的char[]数组,以5个一组,分成6组

有一个30位的二进制码存在了char[]数组中,现在根据算法需要将其5个一组分成6组,之后再将每组都转成int,之后讲5位int二进制码转换成10进制,之后再将其转为ascii码。萌新查了很久资料了,卡在了将char[]分组的步骤上,以及之后将其转为int的步骤,不知各位前辈有何高见,望不吝赐教!

阅读 3.8k
1 个回答

卡在了将char[]分组的步骤上,以及之后将其转为int的步骤

直接这样搞,每5个转换为一个int,样例代码(可能有BUG):

        char[] chArr = {0,0,0,0,1,1,1,0,0,1};
        for (int i = 0; i < chArr.length; i+=5) {
            // 直接组装为int
            int result = 0;
            for (int j = 0; j < 5; j++) {
                result += (int) chArr[i+j] * MathUtil.pow(2, 4-j);
            }
            System.out.println(result);
        }

    /* MathUtil.java */
    /**
     * 整数的几次方
     * @param baseNumber 底数
     * @param exponent 指数
     * @return 计算出的值
     */
    public static int pow(int baseNumber, int exponent) {
        if (exponent < 0) {
            throw new IllegalArgumentException("exponent cant not be a negative number");
        }
        if (exponent == 0) {
            return 1;
        }
        return baseNumber << (exponent - 1); 
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题