upd組播使用nio接收 有序
阿新 • • 發佈:2020-10-09
資料在計算機中以二進位制的形式儲存,資料型別只是人為定義的一種解讀位碼的一種方式。先討論整數之間的轉換,對於長度相同的資料型別,相互轉化時只是改變了解讀的方式,但是並沒有改變位值,比如int和unsigned int;將精度低的轉為精度高的,比如short轉為int,對符號進行拓展;高精度轉為低精度,直接截斷多出來的高位
浮點數(這裡只討論double)強制轉換為整數會發生精度丟失,直接捨去小數部分。還有其他的舍入方式,向上取整,向下取整,四捨五入,這三種在庫函式中都有實現。需要說明的是,強制轉換與向下取整在面臨負數時出現不同反應
double d1=3.65,d2=-3.62
int n1=floor(d1)
int n2=ceil(d1)
int n3=round(d1) //嚴格四捨五入,1.4999轉為1,而不是2
隱式轉換:簡單來說,兩個不同型別的數值計算時,精度較低的會自動轉換為精度較高的參與運算,運算結束再將結果轉換為所要求的型別。
隱式轉換還有可能會發生在傳參時,引數的型別自動轉換為函式要求的引數型別
字串轉換為int:stoi(字串,起始位置,2~32進位制),將n進位制的字串轉化為十進位制;atoi;stringstream
string str="235";
int num=stoi(str)
int num=atoi(str.c_str());
std::string text = "152";
int number;
std::stringstream ss;
ss << text;//可以是其他資料型別
ss >> number; //string -> int
ss.clear(); // clear!!!
字串轉化為double
//string-->double
double stringConverTodouble(string str){
istringstream iss(str);
double x;
if(iss >> x) return x;
return 0.0 ;
}