标题:static_cast
作者:neeme
日期:2016-06-15 06:36
内容:
QByteArray ba;
ba.append(100);
ba.append(200);
uint x = ba[0]; // x = 100
uint y = ba[1]; // y = 4294967240
y = static_cast(ba[1]); // y = 4294967240
y = static_cast(ba[1]); // y = 200
请问 ba[1] 为什么用 static_cast 还时不正确? 而只能用 static_cast 才正确呢!
谢谢!
#1 [马侬骑士 06-15 10:23]
这是由于你的类型转换,由于你的QByteArray ba 是char类型,ba[1]也是,你要是将其认为是
uint y3 = (char)(ba[1]);//4294967240
uint y3 = (uchar)(ba[1]);//200
这些转换应该是内存拷贝,要是对于无符号的和有符号的拷贝应该是区别初始化吧,然后将低位拷贝