反转二进制数

    xiaoxiao2021-03-26  32

    功能描述:对一个二进制数的每位进行0和1反转,求翻转后的二进制所对应的十进制

    输入:1010

    输出:5

    代码如下:

    package 华为机试题; /** * @author Hutongling * * @time:2017年4月8日 下午7:28:56 */ public class 反转二进制数 { static int inverseBinary(String string) { if (string == null || string.length() == 0) return -1; String result = ""; for (int i = 0; i < string.length(); i++) { if (string.charAt(i) == '0' || string.charAt(i) == '1') { if (string.charAt(i) == '0') result += '1'; else if (string.charAt(i) == '1') result += '0'; } else return -1; } int sum = 0; for (int i = 0; i < result.length(); i++) sum = sum * 2 + result.charAt(i) - '0'; return sum; } public static void main(String[] args) { String s="0010"; if(inverseBinary(s)==-1) System.out.println("请输入正确的二进制数"); else System.out.println(inverseBinary(s)); } }

    代码结果: 13

    转载请注明原文地址: https://ju.6miu.com/read-350226.html

    最新回复(0)