关于java:offer-15-二进制中1的个数

41次阅读

共计 501 个字符,预计需要花费 2 分钟才能阅读完成。

二进制中 1 的个数


看到题目首先就得晓得把 10 进制数转为二进制数,而后判断外面为 1 的数字

题解

java 十进制转换成二进制数
进制转换函数

本人的思路


先把转为字符串,而后把 1 替换成空白字符串,而后长度相减就是
Java 中判断某个 String 字符串是否蕴含特定字符串,并统计个数。

官网按位与

1 与 1 是 1,与 0 是 0,而后与起来的值相加就是,其实也能够不与,间接把输出的数所有位的值加起来就行了,因为 0 没用

每次都是与最初一位,挪动的是字符串哈哈哈

移位运算符

<< 左移 >> 右移

  • 左移运算符

    最右边的两位就跑到内存单元的里面去了,这两位数字将会被舍弃,左边空出的两位用 0 补齐。
    左移 N 位的操作具备乘以 2 的 N 次方的成果
  • 带符号右移运算符

    带符号右移就是指当二进制串向左边挪动当前,右边空出的位用”符号位上的数字”填充,说的更直白一点,如果是负数,二进制串右移的时候用 0 来填充右边的空位,而对于正数而言,右移的时候用 1 来填充右边的空位
  • 不带符号右移运算符

    无符号右移在二进制串挪动之后,空位由 0 来补充,与符号位是 0 还是 1 毫无关系
  • Java 位运算符:Java 移位运算符、复合位赋值运算符及位逻辑运算符

和本人减 1 与


转化成字符串,字符串转化为字符流求其总和

正文完
 0