關於移位運算的妙用

2021-08-18 16:22:59 字數 488 閱讀 9771

q:最近在做畢業設計時,想著到底要怎麼做才能在乙個int型變數裡存入兩個int資料時想到了使用移位執行加上按位與。

表述可能有問題,下面是例子

example:

int a=55  int b=71(我隨便取的兩個數) int c ,怎麼樣可以在c裡面一次裝入a和b呢,之後使用時還能分別把這兩個數拆出來

下面是做法

do:55的二進位制:110111

71的二進位制:1000111

1.首先將71左移8位變成 100011100000000

2.然後將71+55 就變成 100011100110111

3.把100011100110111存到c中

那麼應該怎麼恢復成55 71呢

do:1.只需要把c和255進行按位就可以獲得低8位的資料,也就是55

c的二進位制100011100110111

&255的二進位制11111111

2.只需要把c右移8位就可以獲得77

關於Java的移位運算子

測試移位運算子 左移 右側補0 帶符號右移 左側補符號位 正數補0,負數補1 無符號右移 左側補0 public class testshift 左移 右側補0 public static void testleftshift 左移 右側補0 public static void leftshift...

關於移位運算子》和

首先,移位運算子有三種,其操作型別只支援 byte short char int和long五種。左移運算子,表示將左邊的運算元的二進位制資料向左移動 位,移動後空缺位以0填充,多餘位捨棄。等同於乘2的n次方 右移運算子,二進位制資料向右移動 位,就在其二進位制資料後抹掉幾位?這裡還不錯定,但個人理解...

關於移位運算子》和

首先,移位運算子有三種,其操作型別只支援 byte short char int和long五種。左移運算子,表示將左邊的運算元的二進位制資料向左移動 位,移動後空缺位以0填充,多餘位捨棄。等同於乘2的n次方 右移運算子,二進位制資料向右移動 位,就在其二進位制資料後抹掉幾位?這裡還不錯定,但個人理解...