zoukankan      html  css  js  c++  java
  • 求一个10进制正整数转为2进制整数中0和1的个数

    这道题目一开始只想到了把10进制整数转为2进制数组

    toBinaryString(int i) 将i以二进制形式输出出来

    toOctalString(int i)将i以八进制形式输出出来

    toHexString(int i)将i以十六进制形式输出出来

    不过这是直接调用api并不是题目的本意

    调用toBinaryString的代码

    import java.util.*;
    
    public class Main {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            while(in.hasNext()) {
                int num = in.nextInt();
                in.nextLine();
                int count = 0;
                String list = Integer.toBinaryString(num);
                for (int i = 0; i < list.length(); i++) {
                    if(list.charAt(i) == '1') {
                        count++;
                    }
                }
                
                System.out.println(count);
            }
        }
    }

    求1的个数

    使用&运算判断尾巴有没有1有的话去掉再判断

    import java.util.*;
    
    public class Main {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            while(in.hasNext()) {
                int num = in.nextInt();
                in.nextLine();
                int count = 0;
                while(num != 0) {
                    if((num & 1) == 1) {
                        count++;
                    }
                    num = num/2;
                }
                System.out.println(count);
            }
        }
    }

    使用%判断尾巴有没有0,有的话去掉再判断

    求0的个数

    import java.util.*;
    
    public class Main {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            while(in.hasNext()) {
                int num = in.nextInt();
                in.nextLine();
                int count = 0;
                while(num != 0) {
                    if((num % 2) == 0) {
                        count++;
                    }
                    num = num/2;
                }
                System.out.println(count);
            }
        }
    }
  • 相关阅读:
    RDS MySQL 空间问题的原因和解决
    debian8最小化安装,字符界面的中文配置
    ekho安装及测试(中文文字转语音)
    sqlite 常用命令
    记录一次并没有什么用的对比测试
    debian 8 解压安装mysql(版本5.7.19)
    收藏的书录,值得花时间去读的书
    shell脚本监控Linux系统的登录情况
    gcc cc1: all warnings being treated as errors
    FreeSWITCH取消Digest校验流程
  • 原文地址:https://www.cnblogs.com/shineyoung/p/10485869.html
Copyright © 2011-2022 走看看