`

java-按位反转一个整数-Reverse bits of an unsigned integer.

 
阅读更多
see http://www.leetcode.com/2011/08/reverse-bits.html

public class ReverseBitsOfInteger {

	/**
	 * like reversing a string.
	 * we swap the bits in (0,N-1),(1,N-2)......
	 * we do it with XOR
	 * 
	 */
	public static void main(String[] args) {
		int y = 0x01010101;
		int z = reverseBits(y);//z=ox80808080
		System.out.printf("%x\n%x", y, z);

	}

	public static int reverseBits(int y) {
		// INT_SIZE=32 in general
		int INT_SIZE = Integer.SIZE;

		for (int i = 0; i < INT_SIZE / 2; i++) {
			int j = INT_SIZE - 1 - i;

			int low = (y >> i) & 1;
			int high = (y >> j) & 1;

			int A = 1 << i;
			int B = 1 << j;

			if ((high ^ low) == 1) {
				y = y ^ (A | B);
			}
		}
		return y;
	}
}
0
0
分享到:
评论

相关推荐

    java-leetcode面试题解之第7题整数反转.zip

    3. **位操作**:Java中的位操作(如位移、按位与、按位或等)可以帮助我们高效地完成整数反转。我们可以逐位取出数字的每一位,然后将其插入到新整数的对应位置。 4. **进位处理**:在反转过程中,需要处理进位的...

    Recursive-seek-integer-reverse.rar_reverse recursive_seek

    "Recursive-seek-integer-reverse.rar_reverse recursive_seek"这个标题暗示我们,它涉及到使用递归算法来实现一个特定的功能,即反转整数的顺序。描述中提到的例子,输入12345,输出54321,进一步确认了我们要讨论...

    hibernate-configuration-3.0.dtd、hibernate-mapping-3.0.dtd

    例如,`&lt;class&gt;`元素表示一个Java类,它的`name`属性是类的全限定名,`table`属性指定对应的数据库表。`&lt;id&gt;`元素定义主键,`&lt;property&gt;`元素则映射类的属性到表的列。此外,`hibernate-mapping-3.0.dtd`还支持更...

    A.Collection.of.Bit.Programming.Interview.Questions.solved.in.C++

    Reverse the order of bits in an unsigned integer Chapter 20. Convert an integer to a string and a string to an integer Chapter 21. Convert a number from base b1 to base b2 Chapter 22. Given a set S, ...

    07-reverse-integer.c

    c语言入门 07-reverse-integer.c

    js-leetcode题解之7-reverse-integer.js

    js js_leetcode题解之7-reverse-integer.js

    Java 实例 - 字符串反转源代码-详细教程.zip

    首先,Java中的字符串是不可变对象,这意味着一旦创建了一个字符串对象,就不能更改它的内容。因此,反转字符串通常涉及到创建一个新的字符串对象。以下是使用Java内置方法实现字符串反转的基本方法: 1. **...

    mysql-connector-java-5.1.4.jar.rar

    逆向工程(Reverse Engineering)在软件开发中是一个常见的实践,尤其是在数据库驱动的项目中。通过逆向工程,可以从现有的数据库结构生成相应的 Java 源代码,这大大节省了开发者手动创建这些对象的时间,同时也...

    demo-Java-src.zip

    标题“demo-Java-src.zip”表明这是一个包含Java源代码的压缩文件。通常,开发者会将一组相关的Java源代码文件打包成ZIP格式以便于传输、存储或版本控制。在这个案例中,“src”一词暗示了文件夹中可能包含了项目的...

    Java 实例 - 集合反转源代码-详细教程.zip

    在Java集合框架中,`Collections`工具类提供了一个`reverse()`方法,可以用来反转List类型的集合。例如,如果你有一个ArrayList或LinkedList,你可以直接调用`Collections.reverse(list)`来反转集合中的元素顺序。 ...

    java-leetcode题解之007-Reverse-Integer

    java入门 java_leetcode题解之007_Reverse_Integer

    php-leetcode题解之整数反转.zip

    该压缩包的核心知识点是“整数反转”,这是一个常见的编程面试题,主要考察对数字操作和位运算的理解。问题要求编写一个函数,接受一个整数作为输入,然后返回它的反转值。例如,输入123应返回321,输入-123应返回-...

    Java 实例 - 数组反转源代码-详细教程.zip

    Java提供了一个名为`Arrays`的工具类,其中有一个`reverse()`方法可以方便地反转数组。对于基本类型数组,如整型数组,你可以这样使用: ```java import java.util.Arrays; public class ArrayReverse { public ...

    c语言-leetcode 0007-reverse-integer.zip

    c c语言_leetcode 0007_reverse_integer.zip

    整数反转(java代码).docx

    对于一个给定的32位有符号整数`x`,需要编写程序使其数字顺序反转。例如,输入为`123`时,输出应为`321`;若输入为`-123`,则输出为`-321`。但是,由于32位整数存在最大值`2^31 - 1`和最小值`-2^31`,因此在反转过程...

    Java对象存储java-dirty.zip

    java-dirty 是一个快速的基于文件的对象存储系统,只能往存储里添加对象,使用内存映射文件技术。示例代码:Store store = Store.of(Foo.class).from("/path/to/file"); store.put(new Foo(1,2)); store.all()....

    c#-Leetcode面试题解之第7题整数反转.zip

    第7题是“整数反转”(Reverse Integer),这是一个基础但又关键的问题,涉及到整数操作、位运算以及异常处理。下面将详细探讨这个问题及其解决方案。 题目描述: 给定一个32位有符号整数,你的任务是反转它的每一...

    JAVA-LAB-ASSIGNMENT.rar_assignment

    "JAVA-LAB-ASSIGNMENT.rar_assignment" 是一个包含Java实验室作业的压缩文件,旨在帮助学习者掌握核心Java编程技能。这个压缩包包括了多个Java编写的类文件以及一个文档,每个文件对应一个特定的编程任务或概念。 1...

    reverse-integer

    Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 click to show spoilers. Have you thought about this? Here are some good questions to ask before coding...

    ReverseInteger算法Demo

    "ReverseInteger"这个算法Demo主要关注的是整数反转的问题,这在计算机科学中是一个常见的基础操作,尤其是在处理数字逻辑、数据存储或者网络传输时。下面将详细探讨这个算法及其实现。 首先,让我们理解问题的核心...

Global site tag (gtag.js) - Google Analytics