在c/c++在c/c++的開發中經常會遇到各種資料型別互轉的情況,正常的互轉有:單個列舉轉int數,int數轉float數,float數轉double數等。但是我們有時也會遇到多個列舉值與數字互轉的情形(例如多個演算法型別列舉開啟標誌轉成數字,這個數字來表示多個標誌位,按位來表示)。這樣乙個數字就能表示很多個標誌位了,針對記憶體較少的嵌入式裝置,這麼操作可以達到節約記憶體消耗,提高程式執行效率的目的。
demo核心知識點:通過位運算子(布林位運算子:"~"、"&"、"|";移位運算子:"<
code:
#include
using namespace std;
www.cppcns.com
int nflag = 0; //用移位表示各個列舉的開關
typedef enum
emtypenum;
void int2enum (int n)
else
cout << "nflag:" << nflag hkigaat; endl;
}int main()
for(i = 0; i < typenum;i++)
return 0;
}nflag:1
typea is on
typeb is off
typec is off
t程式設計客棧yped is off
nflag:3
typea is on
typeb is on
typec is off
typed is off
nflag:7
typea is on
typeb is owww.cppcns.comn
typec is on
typed is off
nflag:15
typea is on
typeb is on
typec is on
typed is on
nflag:14
typea is off
typeb is on
typec is on
typed is on
nflag:12
typea is off
typeb is off
typec is on
typed is on
nflag:8
typea is off
typeb is off
typec is off
typed is on
nflag:0
typea is off
typeb is off
typec is off
typed is off
C 列舉 字串 值的相互轉換
using system class program static void main string args 假設有列舉值如下 public enum dbprovidertype 1 將列舉轉換為字串 string strdbtype dbprovidertype.sqlserver.tostr...
機械人 四元數 與 尤拉角 的相互轉換
機械人 四元數 與 尤拉角 的相互轉換 flyfish 先看說明 constructs and initializes the quaternion w xi yj zk from its four coefficients w,x,y and z.warning note the order of...
Unity 四元數與尤拉角的相互轉換及推導
一 四元數與尤拉角的轉換 先說結論 具體推到過程參考 將尤拉角轉換為四元數 public quaternion eulartoquaternion float xx,float yy,float zz 二 關於rotation localrotation eulerangles localeuler...