一.進製
十進位制轉n進製: 連除倒取餘.
以 10 為例,不同進製的表示方法:
十進位制: 10;
二進位制: 0b1010;
八進位制: 010;
十六進製制: 0x10;
int a = 100;
printf("%o",a);
如何輸出進製數:
%d ------ 十進位制
%o ------ 八進位制
%0x ----- 十六進製制
位運算子:按位與 &, 按位或 |, 按位非 ~, 按位異或 ^, 左移 <<, 右移 >>
按位與 & : 同1 為 1,否則為 0,經常用於對某一位清零.
按位或 | : 同0 為 0,否則為1.經常用於保留某一位,
按位非 ~ : 如果是乙個有符號的數,則最高位代表符號位,1 代表負數, 0 代表正數,
資料在記憶體中儲存時,是以補碼的形式儲存的,正數的補碼是本身,負數的補碼是 絕對值 取反 加 1 .
按位異或 ^ : 相同為 0,不同為 1 ;
左移 << :
unsigned char d = 1;
printf("%d",d << 4);
右移 >>
unsigned char a = 255;
printf("%d",a >> 1);
unsigned char number = 0b01100100;
unsigned char left = number << 4;
unsigned char right = number >> 4;
unsigned char result = left | right;
printf("%d",result);
//將 10010010 奇偶位互換
unsigned char num = 0b10010010;
//清零操作使用 按位&, 保留的位數為 1 ,清 0 數字為 0 ;
//1.將奇數字變偶數字,左移一位
unsigned char left = num << 1;
//2.保留偶數字,奇數字清 0
unsigned char clearji = left & 10101010;
//3.將偶數字變奇數字,右移一位
unsigned char right = num >> 1;
//4.保留奇數字偶數字清0
unsigned char clearou = right & 01010101;
//5.最後按位或 |
unsigned char result = clearji | clearou;
printf("%d",result);
資料型別的取值範圍:
無符號: char 型別 0 -- 255 (2 的8次方 - 1);
short 0 -- 2的16次方 - 1;
int 0 -- 2的32次方 - 1;
有符號: char -2 的 7次方 -- 2 的7次方 - 1;
short -2 的15次方 -- 2 的15次方 - 1;
int -2 的31次方 -- 2 的31次方 - 1;
char b = ~4;
int a = 5 ^ 7;
printf("%d",b);
//棧區記憶體分配原則: 由高到低分配, 由低到高訪問.
int a = -5;
printf("%p\n",&a);
int b = 10;
printf("%p\n",&b);
//陣列名代表陣列的首位址,也就是陣列的第乙個元素位址,是乙個常量位址
int a[4] = ;
printf("%d\n", &a[0]);
printf("%p\n", &a[1]);
printf("%p\n", &a[2]);
printf("%p\n", &a[3]);
printf("%p\n", &a);
//交換兩個數的值 不借助第三方變數
int a = 20;//1001
int b = 36;//0101
printf("交換前 a = %d,b = %d\n",a, b);
a = a ^ b;//1100
b = b ^ a;//1001
a = a ^ b;//0101
printf("交換後 a = %d,b = %d\n",a, b);
C語言學習筆記 進製和位運算
第一部分 進製 一 基本概念 進製就是不同的計數方式,預設情況下寫的數字都是十進位制的。1 二進位制 逢2進製,0b或0b開頭 int number2 0b1100 2 十進位制 逢10進製 int number 12 3 八進位制 逢8進製,0開頭 int number3 014 4 十六進製制 ...
位運算和進製轉換
位運算指的是對二進位制進行的計算處理。主要有 與 或 異或 求反 其特徵為 都是1的時候才是1 如 13 7 計算過程為 13的二進位制 1101 7的二進位制 0111 得到結果 0101 轉換成10進製則是5 計算過程為 1101 0111 按照或運算得到結果是 1111 轉化成10進製為 15...
c語言位運算
c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制位都為1,則該位的結果值為1,否則為0 按位或 兩個相應的二進位制位中只要有乙個為1,該位的結果值為1 按位異或 若參加運算的兩個二進位制位值相同則為0,否則為1 取反 是一元運算子,用來對乙個二進位制數按位取反,即將0變1...