c++ 中經常會需要資料型別轉換,比如int ->char,cstring 到string char->uchar 等等。
//unicode 字符集下 cstring 轉 string
void ustrtoascchar(const cstringw cs, char *buff)
// string 轉cstring
cstring cs_str(str.c_str());
第一種int<->char 相互轉換(該方法是字元型填充,比如 int x= 4658->char a= 「4658」; char a= 「4658」 ->int x=4658)
//int ->char
int data_size = 5401;
char buf1[4] = ;
sprintf(buf1, "%d", data_size); //將data_size寫入buf1
// char ->int
int size;
sscanf(buf1,"%d",&size); //將 字串buf1以整型格式讀入size
第二種int ->char 轉換(二進位制方式)
int i = 796582;
char buf1[4] = ;
// int->char
buf[0] = (char)(0xff & i);
buf[1] = (char)((0xff00 & i) >> 8);
buf[2] = (char)((0xff0000 & i) >> 16);
buf[3] = (char)((0xff000000 & i) >> 24);
//char->int
//如果你用的編譯器預設char為 有符號的,注意要將char->uchar->int
//如果編譯器預設char為 無符號的,則可以直接轉
uchar buf2 = ;
for(int i = 0;i < 4; i++)
int j = (int)((buf2[0]) | ((buf2[1]) << 8) | ((buf2[2]) << 16) | ((buf2[3]) << 24));
//另外,如果將包含0的char送到string中,則char中的0元素會自動抹
//掉,這點在網路傳輸的包頭中要注意。如果實在需要保留char中的0元素,//可以按位元組賦值
string str(4,'0');
for(int i = 0;i < 4; i++)
影象資料mat 與vector 之間的轉換
// mat convert to byte array
vector
cwatchfacedlg::matconvbyte(mat img)
// byte array convert to mat
cv::mat cwatchfacedlg::bytestomat(std::vector
bytes, int height, int width)
string -> vector 之間的轉換
// string convert to byte array
std::vector
cwatchfacedlg::stringtobyte(string str)
C 幾種資料型別轉換
1.int 變數名 強制型別轉換 該轉換方式主要用於數字型別之間的轉換,從int型別向long,float,double,decimal 型別轉換可以使用隱式轉換,但從long型到int 就需要使用顯示轉換,即使用該型別的轉換方式否則產生編譯錯誤。該方式對於浮點數會無條件的捨去,會失去精確度 對於c...
qt幾種資料型別轉換
1 int型轉十六進製制 補0 qstring s s qstring 1 arg k,4,16,qlatin1char 0 k為int或char都可,第二個引數為資料寬度,第三個引數為進製 不補 0 s qstring number k,16 2 十六進製制轉浮點數 正數 qstring str ...
C 中幾種資料型別轉化總結
類名 變數 強制轉換 不能轉換會丟擲異常,值和 引用型別都可以 變數 as 類名 as 運算子用於執行引用型別的顯式型別轉換。如果要轉換的型別與指定型別相容,轉換就會成功 如果型別不相容,則返回null。還有conver.to x 主要用在值型別 將乙個基本資料型別轉換為另乙個基本資料型別 int ...