matlab 数据混合运算,C++中混合运算的类型转换
1.混合運算和隱式轉換
C++中允許相關的數據類型進行混合運算。
相關類型:盡管在程序中的數據類型不同,但邏輯上進行這種運算是合理的,比如2+5.0
相關類型在混合運算時會自動進行隱式類型轉換,再計算。
2.算術轉換
轉換原則:
確保計算值的精度。轉換后盡可能不丟失有效數字。
比如:short,2字節,能表示的數小;int,4字節,能表示的數大;int 轉short,要丟掉2字節的信息,不可取;short轉int,增加存儲空間,但不丟失信息,可取。
轉換方式:
(1)字節少的向字節多的轉換
char,unsigned char,short,unsigned short,bool->int
cout<
(2)精度低的向精度高的轉換
int -> float -> double
cout<
(3)有符號向無符號轉換
int -> unsigned int
unsigned intui = 32768;
cout<
3.隱式轉換時機
(1)混合類型的表達式
intn = 2;
charc = ‘a’;
cout<
(2)賦值
向左值類型轉換
doublea = 8.12;
intk;
k = a;//a轉換為int,舍去小數,k=8
(向低精度轉換 會 損失有效數字)
(3)在需要關系、邏輯表達式的地方
非0轉true;0轉false
4.顯示轉換
程序中明確標記轉換的類型,就是顯示轉換,也就是強制類型轉換。
格式:() 或者 ()
舉例:
double a =128,b = 30;
int n = 3;
a = (double)n/2;//強制將轉a換為adouble
n = (int)(a/b);//強制將a/b的值轉為int
優先級:高于乘法和除法,和邏輯非、按位取反同級
結合順序:從右向左
總結
(1)相同類型的數據運算,結果的類型不變
(2)不同類型的數據運算,自動向精度高的類型轉換
(3)賦值運算,向左值類型轉換
(4)強制類型轉換 () 或者()
(5)精度高向精度低的類型轉換,會損失精度
(6)整型相除,結果為整型,小數會被舍去。
注:
(1)整型/整型 = 整型,3/2 = 1,而不是1.5
(2)double賦值給int,會舍去小數
(3)char和int相加,是字符的ASCII和整數相加
通過微信學習的知識只能是碎片化的知識,作為新時代的我們希望能夠構建自己的知識結構,使我們的知識體系化,系統化,以后在遇到碎片化的知識,我們做的只是融合到自己的知識結構中,故我們將推出“與LSGO一起學”系列課程,幫助大家來構建知識框架,初步規劃有:“與LSGO一起學C++”;
“與LSGO一起學C#”;
“與LSGO一起學Matlab”;
“與LSGO一起學數據結構”;
“與LSGO一起學設計模式”;
“與LSGO一起學可視化建模語言(UML)”;
“與LSGO一起學線性代數”;
“與LSGO一起學高等數學”
“與LSGO一起學概率論與數理統計”;
“與LSGO一起學抽象代數;
“與LSGO一起學點集拓撲”
“與LSGO一起學數字圖像處理”;
“與LSGO一起學智能計算”;
如果對這些內容感興趣,可以一起來學習討論。
我們的官網: www.lsgogroup.com
總結
以上是生活随笔為你收集整理的matlab 数据混合运算,C++中混合运算的类型转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么把需要的字从TTF里面提取出来\字体
- 下一篇: iOS UICollectionView