1、c++中static_cast用法
static_cast是指显性类型强制转换,如:
int a = static_cast<int>(120.34);
结果为a= 120. 和C语言学习时的显性意义一样,但是编译器会对此类型转换进行检查。
另外还有3种转换:const属性用const_cast。
基本类型转换用static_cast。
多态类之间的类型转换用daynamic_cast。
不同类型的指针类型转换用reinterpreter_cast。
2、uchar与char
char 是有符号的, uchar(unsigned char)是无符号的.
1、作为字符来表示的话,两者没有什么区别!
2、作为整数来表示的话,由于char是有符号的,于是数值范围为-128~127。而uchar是无符号的,于是数值范围为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;