您的位置:首页 > 其它

有符号数的转换和 无符号数的转换(转)

2010-06-05 19:41 218 查看

有符号数的转换和 无符号数的转换(转)


(2010-05-26 11:58:57)

标签:

c/c

类型转换

杂谈

分类:C/C++
2-4有符号数的转换

方法
charshort符号位扩展
charlong符号位扩展
charunsigned char最高位失去符号位意义,变为数据位
charunsigned short符号位扩展到short;然后从short转到 unsigned short
charunsigned long符号位扩展到long; 然后从long 转到unsigned long
charfloat符号位扩展到long; 然后从long 转到float
chardouble符号位扩展到long; 然后从long 转到double
charlong double符号位扩展到long; 然后从long 转到long double
shortchar保留低位字节
shortlong符号位扩展
shortunsigned char保留低位字节
shortunsigned short最高位失去符号位意义,变为数据位
shortunsigned long符号位扩展到long; 然后从long转到unsigned double
shortfloat符号位扩展到long; 然后从long 转到float
shortdouble符号位扩展到long; 然后从long 转到double
shortlong double符号位扩展到long; 然后从long 转到double
longchar保留低位字节
longshort保留低位字节
longunsigned char保留低位字节
longunsigned short保留低位字节
longunsigned long最高位失去符号位意义,变为数据位
longFloat使用单精度浮点数表示。可能丢失精度。
longdouble使用双精度浮点数表示。可能丢失精度。
longlong double使用双精度浮点数表示。可能丢失精度。

2-5无符号数的转换

方法
unsigned charchar最高位作为符号位
unsigned charshort0扩展
unsigned charlong0扩展
unsigned charunsigned short0扩展
unsigned charunsigned long0扩展
unsigned charfloat转换到long; 再从 long 转换到float
unsigned chardouble转换到long; 再从 long 转换到double
unsigned charlong double转换到long; 再从 long 转换到double
unsigned shortchar保留低位字节
unsigned shortshort最高位作为符号位
unsigned shortlong0扩展
unsigned shortunsigned char保留低位字节
unsigned shortunsigned long0扩展
unsigned shortfloat转换到long; 再从 long 转换到float
unsigned shortdouble转换到long; 再从 long 转换到double
unsigned shortlong double转换到long; 再从 long 转换到double
unsigned longchar保留低位字节
unsigned longshort保留低位字节
unsigned longlong最高位作为符号位
unsigned longunsigned char保留低位字节
unsigned longunsigned short保留低位字节
unsigned longfloat转换到long; 再从 long 转换到float
unsigned longdoubleConvert directly to double
unsigned longlong double转换到long; 再从 long 转换到double
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: