Pages

2010年10月2日 星期六

C/C++[微小位元][數字&數字]

最近,因為面試的關係,想把一些東西弄清楚,所以做了一些測試:
以下是微小位元的測試,實際是就是二進位運算啦,考是算錯(怪怪)

  1. #include<stdio.h>
  2.  
  3. int main(void){
  4. int a = 44;
  5. int b = 55;
  6. int c = 33;
  7. int d = -20;
  8. printf("uni-micro operator: \n");
  9. printf("a & b = %d\n", a & b);
  10. printf("b & c = %d\n", b & c);
  11. printf("c & d = %d\n", c & d);
  12. printf("b & b = %d\n", b & b);
  13. printf("a | b = %d\n", a | b);
  14.  
  15. printf("double-micro operator: \n");
  16. printf("a && b = %d\n", a && b);
  17. printf("a || b = %d\n", a || b);
  18.  
  19. printf("while-micro operator: \n");
  20. while( a & b){
  21. printf("a ^ b = %d, ", a ^ b);
  22. a--;
  23. if(a < 40){
  24. break;
  25. }
  26. }
  27. printf("\n");
  28. while( a ^ d){
  29. printf("a ^ d = %d, ", a ^ d);
  30. a--;
  31. if( a ^ d < 0){
  32. break;
  33. }
  34. }
  35.  
  36. return 0;
  37. }
結果:
  1. uni-micro operator:
  2. a & b = 36
  3. b & c = 33
  4. c & d = 32
  5. b & b = 55
  6. a | b = 63
  7. double-micro operator:
  8. a && b = 1
  9. a || b = 1
  10. while-micro operator:
  11. a ^ b = 27, a ^ b = 28, a ^ b = 29, a ^ b = 30, a ^ b = 31,
  12. a ^ d = -53,

由結果知道,while迴圈對負號的數值也會進入迴圈跑,我之前已為負的就不會跑= ="
學習中...

0 意見: