不使用其他變量交換兩個整型的值:
#include <stdio.h> void main(){ int a = 3; int b = 4; a = a ^ b;//使用異或交換 b = b ^ a; a = a ^ b; printf("%d, %d/n", a, b); a = a - b;//使用加減交換 b = a + b; a = b - a; printf("%d, %d/n", a, b); a ^= b ^= a ^= b; printf("%d, %d/n", a, b); }
整形和字符數組型轉換:
#include <stdio.h> #include <stdlib.h> int sumof1(int x)//求一個數轉換成二進制以后1的個數 { int countx = 0; while(x) { countx ++; x &= x-1; //每位與一次x - 1;就能消掉最后一個1 } return countx; } void main(){ char c[10]; int i = 999; itoa(i, c, 10);//以10進制轉換成字符數組 puts(c); itoa(i, c, 16);//以16進制轉換成字符數組 printf("0x%s/n", c); itoa(i, c, 8);//以8進制轉換成字符數組 printf("0%s/n", c); itoa(i, c, 2);//以2進制轉換成字符數組 puts(c); i = atoi(c);//再將字符串轉成整形 printf("%d/n", i); printf("%d/n", sumof1(i));//以2進制表示時1的個數 }
新聞熱點
疑難解答
圖片精選