颠倒给定的 6 位无符号整数的二进制位。给出java代码和junit测试代码
时间: 2024-03-21 21:43:31 浏览: 16
以下是Java代码:
```
public class ReverseBits {
public static int reverseBits(int n) {
int result = 0;
for (int i = 0; i < 32; i++) {
result <<= 1;
result |= (n & 1);
n >>>= 1;
}
return result;
}
}
```
以下是JUnit测试代码:
```
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class ReverseBitsTest {
@Test
public void testReverseBits() {
assertEquals(964176192, ReverseBits.reverseBits(43261596));
assertEquals(-1073741825, ReverseBits.reverseBits(-3));
}
}
```
这个程序的主要思路是使用位运算将输入的无符号整数的二进制位颠倒,然后返回结果。JUnit测试代码测试了两个例子,分别是正数和负数,用于验证程序的正确性。
相关问题
单元测试对返回给定整数的绝对值方法进行出错处理的Java测试代码
以下是一个使用JUnit进行单元测试的Java测试代码示例,测试返回给定整数的绝对值方法是否正确地处理错误情况:
```java
import org.junit.Test;
import static org.junit.Assert.*;
public class AbsoluteValueTest {
@Test
public void testPositiveNumber() {
assertEquals(5, AbsoluteValue.abs(5));
}
@Test
public void testNegativeNumber() {
assertEquals(5, AbsoluteValue.abs(-5));
}
@Test(expected = IllegalArgumentException.class)
public void testExceptionThrown() {
AbsoluteValue.abs(Integer.MIN_VALUE);
}
}
```
在这个示例中,我们使用JUnit的`@Test`注释来标记测试方法。`assertEquals()`方法用于比较实际结果和预期结果是否相等。第一个测试方法测试当传递正数给`abs()`方法时它是否返回正确的值。第二个测试方法测试当传递负数给`abs()`方法时它是否返回正确的值。第三个测试方法测试当传递`Integer.MIN_VALUE`给`abs()`方法时它是否抛出了预期的`IllegalArgumentException`异常。
对返回给定整数的绝对值方法进行所有可能的出错处理的Java测试代码
以下是Java中实现对返回给定整数的绝对值方法进行所有可能的出错处理的测试代码:
```java
import org.junit.Test;
import static org.junit.Assert.*;
public class AbsoluteValueTest {
@Test
public void testPositiveNumber() {
int num = 5;
assertEquals(5, AbsoluteValue.getAbsoluteValue(num));
}
@Test
public void testNegativeNumber() {
int num = -5;
assertEquals(5, AbsoluteValue.getAbsoluteValue(num));
}
@Test
public void testZero() {
int num = 0;
assertEquals(0, AbsoluteValue.getAbsoluteValue(num));
}
@Test(expected = IllegalArgumentException.class)
public void testMinValue() {
int num = Integer.MIN_VALUE;
AbsoluteValue.getAbsoluteValue(num);
}
@Test(expected = IllegalArgumentException.class)
public void testMaxValue() {
int num = Integer.MAX_VALUE;
AbsoluteValue.getAbsoluteValue(num);
}
}
```
在上面的代码中,我们使用JUnit测试框架来编写测试用例。我们测试了三种情况:正数、负数和零。此外,我们还测试了两个边界情况:最小值和最大值。由于最小值取反后仍然是最小值,因此我们期望会出现IllegalArgumentException异常。同样,最大值取反后会导致溢出,因此我们也期望会出现IllegalArgumentException异常。