int main(void) { uint64 x = 0xface0000cafe0000LL; uint64 y = swap_bits(x, 3, 59); uint64 z = swap_bits(y, 3, 59); printf("%llX\n%llX\n%llX\n", x, y, z); std::cout << std::hex << x << std::endl; std::cout << std::hex << y << std::endl; std::cout << std::hex << z << std::endl; std::cout << divide_x_y(4097, 2) << std::endl; // 6.2: O(1) initialize an array. Array<int, 8> arr; arr.write(7, 70); arr.write(4, 400); arr.write(5, 500); arr.write(2, 200); arr.write(1, 100); arr.write(0, 20); arr.write(3, 30); arr.write(6, 60); std::cout << std::endl; for (int i = 0; i < 8; i++) { int v = 0; if (arr.read(i, v)) std::cout << v << " "; } std::cout << std::endl; for (int i = 0; i < 8; i++) { arr.write(i, i); } for (int i = 0; i < 8; i++) { int v = 0; if (arr.read(i, v)) std::cout << v << " "; } std::cout << std::endl; arr.print(); // 0 1 2 3 4 5 6 7 8 9 10 std::vector<int> A = {1, 2, 3, 4, 1, 2, 3, 4, 7, 1, 2}; auto ans = find_longest_increasing_subarray<int>(A); std::cout << ans.first << " " << ans.second << std::endl; return 0; }
int main(){ int num,p1,p2,n; printf("Enter the number n :"); scanf("%d",&num); printf("Enter position and number of bits to swapped :"); scanf("%d%d%d",&p1,&p2,&n); printf("Number after swapping bits :%d\n",swap_bits(num,p1,p2,n)); return 0; }
int main(int argc, char * argv[]) { bool pass = true; pass = pass && (swap_bits(0) == 0) && (swap_bits(1) == 2) && (swap_bits(2) == 1) && (swap_bits(3) == 3) && (swap_bits(0x55555555) == 0xAAAAAAAA) && (swap_bits(0xAAAAAAAA) == 0x55555555) && (swap_bits(0xC0000000) == 0xC0000000) && (swap_bits(0x40000000) == 0x80000000) && (swap_bits(0x80000000) == 0x40000000) ; return (pass ? 0 : -1); }
// Tests the bit algorithms void test_bit_algo() { // Test sign of assert(sign_of_int(-10) == -1 && sign_of_int(10) == 0); assert(sign_of_int_ec(-10) == -1 && sign_of_int_ec(10) == 0); // Test opposite_sign assert(opposite_sign(1,-1) == 1 && opposite_sign(-1,-1) == 0 && opposite_sign(1,1) == 0); // Test absolute number assert(abs_of_int(-10) == abs_of_int(10)); // Test min of assert(min_of(1,2) == 1 && min_of(2,1) == 1); // Test min of 3 assert(min_of3(1,2,3) == 1 && min_of3(3,2,1) == 1); // Test is power of 2 assert(is_power_of2(1024) && !is_power_of2(1023)); // Test next power of two assert(next_power_of2(2000) == 2048 && next_power_of2(2049) == 4096); // Test swap bits assert(swap_bits(42) == 21 && swap_bits(21) == 10); // Test count bits }
bool main() { srand(time(NULL)); int number, newnumber, i, j; i = rand() % 31; j = rand() % 31; number = rand(); // i = 0; // j = 31; // number = (1 << 31) + 1; if (i == j) { printf("i and j are equal, quitting..."); return false; } printf("Swapping bits %d and %d (zero indexed) in 0x%x\n", i, j, number); newnumber = swap_bits(number, i, j); printf("0x%x\n", newnumber); }
/* * @brief Driver function */ int main(int argc, char *argv[]) { int res = swap_bits(NUM, 1, 5, 3); printf("Result: %d\n", res); return 0; }