1.4一题三解:二进制中1的个数

网友投稿 262 2022-09-02

1.4一题三解:二进制中1的个数

题解1:

int的数值是三十二位,则用x&1来参与计数,每次循环1向左移一位

&的功能:按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0

import java.util.Scanner;public class 一题三解二进制中1的个数 {//这里的名字必须跟你自己定义的名字一样 public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc =new Scanner(System.in); int N=sc.nextInt(); //Integer.toString(int par1,int par2),par1表示要转成字符串的数字,par2表示要转成的进制表示 System.out.println(Integer.toString(N, 2)); int count =0; for(int i=0;i<32;i++) { if((N&(1<

题解二:

x&1中,每次循环x向右移一位,1不移动

思路3:

计算N=((N-1)&N),知道N等于0,设置一个计数器count

import java.util.Scanner;public class 一题三解二进制中1的个数 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc =new Scanner(System.in); int N=sc.nextInt(); //Integer.toString(int par1,int par2),par1表示要转成字符串的数字,par2表示要转成的进制表示 System.out.println(Integer.toString(N, 2)); int count =0; for(int i=0;i<32;i++) { if((N&(1<>>i)&1)==1) count++; } System.out.println(count); count =0; while(N!=0) { N=((N-1)&N); count++; } System.out.println(count); }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:操作系统实验报告 实验2 进程管理(答案全)
下一篇:1.6位运算思维:将整数的奇偶位互换
相关文章

 发表评论

暂时没有评论,来抢沙发吧~