按位操作符只能用于整数基本数据类型中的单个bit中,操作符对应表格:

Operator Description
& 按位与(12345&1=1,可用于判断整数的奇偶性)
| 按位或
^ 异或(同假异真)
~ 非(一元操作符)
&=,|=,^= 合并运算和赋值
<<N 左移N位,低位补0
>>N 右移N位,(正数:高位补0,负数高位补1)
>>>N 无符号右移(无论正负数,高位皆补0)
<<=,>>=,>>>= 合并运算和赋值(移动相应位数再赋值给左边变量)

leetcode191:

Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).

For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should return 3.

值得注意的是我们要将传入的int n作为无符号整数看待,但是在java中int是有符号的,我想到的方法就是利用上面的>>>无符号移位操作,代码如下:

public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
int num = 0;
do{
if((n & 1) == 1) num++;
}while((n>>>=1) > 0);
return num;
} public static void main(String[] args){
System.out.println((new Solution()).hammingWeight(11));
}
}

leetcode190

Reverse bits of a given 32 bits unsigned integer.

For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as00111001011110000010100101000000).

Follow up:
If this function is called many times, how would you optimize it?

二进制的倒置可以用移位来进行,增加运算效率

     public int reverseBits(int n) {
int rs = 0;
for (int i = 0; i < 32; i++) {
rs = (rs << 1) + (n & 1);
n >>= 1;
}
return rs;
}

leetcode7:

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

十进制的倒置同样值得注意的就是倒置以后溢出的问题,我采用的方法就是函数内利用Long类型来进行计算,并在转换成int前与intMax进行比较,如果溢出返回0(题目要求)

     public int reverse(int x) {
long l = new Long(x);
Long tmp = 0L;
while (l != 0) {
tmp = tmp * 10 + l % 10L;
l /= 10;
}
if (x > 0 && tmp > 2147483647L || x < 0 && tmp < -2147483648)
return 0;
return tmp.intValue();
}

想到了新的解法再更新

Java位运算总结-leetcode题目的更多相关文章

  1. Java 位运算2-LeetCode 201 Bitwise AND of Numbers Range

    在Java位运算总结-leetcode题目博文中总结了Java提供的按位运算操作符,今天又碰到LeetCode中一道按位操作的题目 Given a range [m, n] where 0 <= ...

  2. Java位运算总结:位运算用途广泛《转》

    前天几天研究了下JDK的Collection接口,本来准备接着研究Map接口,可是一查看HashMap类源码傻眼咯,到处是位运算实现,所以我觉得还是有必要先补补位运算知识,不然代码看起来有点费力.今天 ...

  3. Java位运算原理及使用讲解

    前言日常开发中位运算不是很常用,但是巧妙的使用位运算可以大量减少运行开销,优化算法.举个例子,翻转操作比较常见,比如初始值为1,操作一次变为0,再操作一次变为1.可能的做法是使用三木运算符,判断原始值 ...

  4. (转)java位运算

    转自:http://aijuans.iteye.com/blog/1850655 Java 位运算(移位.位与.或.异或.非)   public class Test { public static ...

  5. Java位运算总结:位运算用途广泛

    前天几天研究了下JDK的Collection接口,本来准备接着研究Map接口,可是一查看HashMap类源码傻眼咯,到处是位运算实现,所以我觉得还是有必要先补补位运算知识,不然代码看起来有点费力.今天 ...

  6. Java 位运算超全面总结

    1.原码.反码.补码 关于原码.反码.补码的相关知识作者不打算在这里长篇大论,相关知识已有别的大佬总结很好了,还请老铁自行 Google,不过有篇知乎回答是作者学编程以来见过对相关知识最通俗易懂,生动 ...

  7. 我们必须要了解的Java位运算(不仅限于Java)

    本文原创地址为 https://www.cnblogs.com/zh94/p/16195373.html 原创声明:作者:陈咬金. 博客地址:https://www.cnblogs.com/zh94/ ...

  8. leetcode:single-number-ii(Java位运算)

    题目 Given an array of integers, every element appears three times except for one. Find that single on ...

  9. Java位运算经典实例

    一 源码.反码.补码 正数的源码.反码.补码相同,例如5:            5的源码:101            5的反码:101            5的补码:101 负数的源码.反码.补 ...

随机推荐

  1. phpcms 服务器安全认证错误

    本人将图片的js.images.css路径转移到CDN上了,上传附件的时候就出现了 “服务器安全认证错误”的提示.   找到文件 D:\wamp\www\phpcms\phpcms\modules\a ...

  2. 安装使用Oracle OSWbb/OSWbba工具

    OSWbb是收集数据,OSWbba 是分析数据,在OSWbb4.0以后,OSWbba已经绑定在OSWbb内. 1.创建目录,上传/解压安装包 [oracle@std ~]$ mkdir oswbb [ ...

  3. 内存不足时,调用ajax报的错

    在error中遍历出来的异常   很难见

  4. SVN Server for Migration

    SVN Server: http://mxsuse01/svn/repos/erp/Oracle_EMS Report SVN (Put to SVN Sort) 1. *.RDF 2. *CP.LD ...

  5. HDFS Client 设计实现解析

    前面对 HDFS NameNode 和 DataNode 的架构设计实现要点做了介绍,本文对 HDFS 最后一个主要构成组件 Client 做进一步解析. 流式读取 HDFS Client 为客户端应 ...

  6. 浅析 Linux 初始化 init 系统

    近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经逐渐淡出历史舞台,新的 UpStart 和 systemd 各有特点,越来越多的 Linux 发行版采纳了 ...

  7. Visual Studio LightSwitch

    LightSwitch是一个基于模板的自动化开发Silverlight和HTML5应用程序的工具,不同于一般的基于数据字典,配置生成的应用程序的工具,因为LightSwtich提供的所有模板都是可以扩 ...

  8. Microsoft .NET Framework 4.0.3版下载

    适用于 Microsoft .NET Framework 4 的更新 4.0.3,其中包含一系列新增功能,用于满足高端客户的功能需求和重要 .NET Framework 方案的需求. http://w ...

  9. [译]WebForms vs. MVC

    译者介绍 小小.NET学童,滴答…滴答…的雨…… 正文如下======================================================= 原文示例(VS2012): 1 ...

  10. Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍

    网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edisonchou/p/4458219.html 网站日志分析项目案例 ...