c++中static_cast用法与uchar/char的区别
生活随笔
收集整理的這篇文章主要介紹了
c++中static_cast用法与uchar/char的区别
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、c++中static_cast用法
static_cast是指顯性類型強(qiáng)制轉(zhuǎn)換,如:
int a = static_cast<int>(120.34);
結(jié)果為a= 120. 和C語言學(xué)習(xí)時的顯性意義一樣,但是編譯器會對此類型轉(zhuǎn)換進(jìn)行檢查。
另外還有3種轉(zhuǎn)換:const屬性用const_cast。
基本類型轉(zhuǎn)換用static_cast。
多態(tài)類之間的類型轉(zhuǎn)換用daynamic_cast。
不同類型的指針類型轉(zhuǎn)換用reinterpreter_cast。
2、uchar與char
char 是有符號的, uchar(unsigned char)是無符號的.
1、作為字符來表示的話,兩者沒有什么區(qū)別!
2、作為整數(shù)來表示的話,由于char是有符號的,于是數(shù)值范圍為-128~127。而uchar是無符號的,于是數(shù)值范圍為0~255,在圖像處理中表示像素值范圍時用的多!
double b = 257.23;double b1 = 200.23;double b2 = 255.23;double b3 = 256.32;double b4 = -3;uchar a = static_cast<uchar>(b);uchar a1 = static_cast<uchar>(b1);uchar a2 = static_cast<uchar>(b2);uchar a3 = static_cast<uchar>(b3);uchar a4 = static_cast<uchar>(b4);cout << (int)a << endl;cout << (int)a1 << endl;cout << (int)a2 << endl;cout << (int)a3 << endl;cout << (int)a4 << endl;
總結(jié)
以上是生活随笔為你收集整理的c++中static_cast用法与uchar/char的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv线性插值(上采样)
- 下一篇: 差分金字塔