请问有人能解释一下 float
转换成 uint32_t
是如何工作的吗?这是一个有效的转换吗?
我理解下面代码中第一行的输出,但其他的我自己想不明白。
cout<<uint8_t(256+33)<<'\n';
cout<<uint8_t(float(256+33))<<'\n';
cout<<int(uint8_t(float(256+33)))<<'\n';
cout<<int(uint8_t(float(256+3)))<<'\n';
cout<<int(uint8_t(float(256+20)))<<'\n';
输出
!
�
255
255
255
uint8_t(256+33)
是将int转换为unsigned char,它会输出!
,这正是我所期望的。但是,float
到uint8_t
的转换根本行不通。当我尝试将输出强制转换为int时,它会给出常数255
。
我有一个vector<float>
,想将其转换为vector<uint8_t>
,并传递给一个函数。什么是将float
转换为uint8_t
的有效方法?static_cast<uint8_t>
可以吗? 我应该先将float
转换为int
,然后再将int
转换为uint8_t
吗?
std::cout
如何处理char
类型。 - phuclvfloat
向量转换为uint8_t
。 - Anonymous