Example #1
0
/* Determine whether arguments can be subtracted without overflow */
int tsub_ok(int x, int y)
{
	char *bool[] = {" not ", " "};
	int z = x - y;

	int a = x>>(w-1);
	int b = y>>(w-1);
	int c = z>>(w-1);

	int d = ((a|b)==-1) && ((a&b)==0) && ((a|c)==-1) && ((a&c)==0);
	printf("In %s, x = %d, \t y = %d, \t z = %d, \t  x - y is%soverflow!\n", __func__, x, y, z, bool[d]);
	return d;
}

	int
main ( int argc, char *argv[] )
{
    tsub_ok(0, -1);
    tsub_ok(INT_MAX, 0);
	tsub_ok(INT_MAX, -1);
	tsub_ok(INT_MIN, 0);
	tsub_ok(INT_MIN, 1);
	tsub_ok(INT_MIN, 2);
	tsub_ok(INT_MIN + 1, 1);
	tsub_ok(INT_MAX - 1, -1);
	return EXIT_SUCCESS;
}				/* ----------  end of function main  ---------- */
Example #2
0
File: 2.32.c Project: AI-Ying/Deep
int main()
{

    int x, y;
    printf("input x and y:");
    scanf("%d, %d", &x, &y);
    printf("resutl = %d\n", tsub_ok(x, y));
    return 0;
}
Example #3
0
int 
main(int argc, 
    char **argv) {
  printf("%d\n", tadd_ok_char(-127, -4)); 
  printf("%d\n", tadd_ok_char(-1, -2)); 
  printf("%d\n", tadd_ok_char(-1, 7)); 
  printf("%d\n", tadd_ok_char(126, 20)); 

  printf("\n"); 

  printf("%d\n", tadd_ok(INT_MIN, INT_MIN)); 
  printf("%d\n", tadd_ok(INT_MIN, -4)); 
  printf("%d\n", tadd_ok(-1, -2)); 
  printf("%d\n", tadd_ok(-1, 7)); 
  printf("%d\n", tadd_ok(INT_MAX, 20)); 
  printf("%d\n", tadd_ok(INT_MAX, INT_MAX)); 

  printf("\n"); 

  printf("%d\n", tsub_ok(INT_MIN, INT_MIN)); 
  printf("%d\n", tsub_ok(INT_MIN, -4)); 
  printf("%d\n", tsub_ok(-1, -2)); 
  printf("%d\n", tsub_ok(-1, 7)); 
  printf("%d\n", tsub_ok(INT_MAX, 20)); 
  printf("%d\n", tsub_ok(INT_MAX, INT_MAX)); 

  printf("INT_MIN = %d\t -INT_MIN = %d\n", INT_MIN, (-INT_MIN)); 

  return EXIT_SUCCESS; 
}
Example #4
0
int main(){
	printf("tsub_ok(0x00000001,0x80000000)=%d\n",tsub_ok(0x00000001,0x80000000));
	printf("tsub_ok(0x80000000,0x00000001)=%d\n",tsub_ok(0x80000000,0x00000001));
	printf("tsub_ok(0x80000000,0x80000000)=%d\n",tsub_ok(0x80000000,0x80000000));
	return 0;
}