/* Insertion: You are given two 32-bit numbers, N and M, and two bit positions, i and j. Write a method to insert Minto N such that M starts at bit j and ends at bit i. You can assume that the bits j through ihave enough space to fit all of M. That is, if M= 10011, you can assume that there are at least 5 bits between j and i. You would not, for example, have j = 3and i= 2, because Mcould not fully fit between bit 3 and bit 2. EXAMPLE Input: N 10000000000, M 10011, i = 2, j 6 Output: N 10001001100 */ public class Main { public static void main(String[] args) { System.out.println("Hello World!"); int N = 123, M = 13, i = 2, j = 6; String binN = Integer.toBinaryString(N); String binM = Integer.toBinaryString(M); System.out.println(binN); System.out.println(binM); int result = merge(N, M, i, j); System.out.println(Integer.toBinaryString(result)); } public static int merge(int n, int m, int i, int j) { int left = (~0) << (j + 1); int right = (1 << i) - 1; int mask = left | right; n = n & mask; m = m << i; return n | m; } }
Insertion java 走地牙 CTCI 5.1
最新推荐文章于 2024-08-29 16:08:24 发布