2.81

A.

-1 << k

B.

~(-1 << k) << j
/*
 * 2.81.c
 */
#include <stdio.h>
#include <assert.h>

/* Assume 0 <= k < w */
int A(int k) {
  return -1 << k;
}

/* Assume 0 <= j,k < w */
int B(int k, int j) {
  return ~A(k) << j;
}

int main(int argc, char* argv[]) {
  assert(A(8) == 0xFFFFFF00);
  assert(B(16, 8) == 0x00FFFF00);
  return 0;
}


comments powered by Disqus