1. 程式人生 > 實用技巧 >upd組播使用nio接收 有序

upd組播使用nio接收 有序

資料在計算機中以二進位制的形式儲存,資料型別只是人為定義的一種解讀位碼的一種方式。先討論整數之間的轉換,對於長度相同的資料型別,相互轉化時只是改變了解讀的方式,但是並沒有改變位值,比如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
; }