有符号和无符号数据的转换

来源:互联网 发布:英雄联盟网络延迟300 编辑:程序博客网 时间:2024/04/29 18:16

有符号和无符号数据的转换:

 

有符号数的转换

方法charshort符号位扩展charlong符号位扩展charunsigned char最高位失去符号位意义,变为数据位charunsigned short符号位扩展到short;然后从short转到 unsigned shortcharunsigned long符号位扩展到long; 然后从long 转到unsigned longcharfloat符号位扩展到long; 然后从long 转到floatchardouble符号位扩展到long; 然后从long 转到doublecharlong double符号位扩展到long; 然后从long 转到long doubleshortchar保留低位字节shortlong符号位扩展shortunsigned char保留低位字节shortunsigned short最高位失去符号位意义,变为数据位shortunsigned long符号位扩展到long; 然后从long转到unsigned doubleshortfloat符号位扩展到long; 然后从long 转到floatshortdouble符号位扩展到long; 然后从long 转到doubleshortlong double符号位扩展到long; 然后从long 转到doublelongchar保留低位字节longshort保留低位字节longunsigned char保留低位字节longunsigned short保留低位字节longunsigned long最高位失去符号位意义,变为数据位longFloat使用单精度浮点数表示。可能丢失精度。longdouble使用双精度浮点数表示。可能丢失精度。longlong double使用双精度浮点数表示。可能丢失精度。图片点击可在新窗口打开查看无符号数的转换

 

 方法unsigned charchar最高位作为符号位unsigned charshort0扩展unsigned charlong0扩展unsigned charunsigned short0扩展unsigned charunsigned long0扩展unsigned charfloat转换到long; 再从 long 转换到floatunsigned chardouble转换到long; 再从 long 转换到doubleunsigned charlong double转换到long; 再从 long 转换到doubleunsigned shortchar保留低位字节unsigned shortshort最高位作为符号位unsigned shortlong0扩展unsigned shortunsigned char保留低位字节unsigned shortunsigned long0扩展unsigned shortfloat转换到long; 再从 long 转换到floatunsigned shortdouble转换到long; 再从 long 转换到doubleunsigned shortlong double转换到long; 再从 long 转换到doubleunsigned longchar保留低位字节unsigned longshort保留低位字节unsigned longlong最高位作为符号位unsigned longunsigned char保留低位字节unsigned longunsigned short保留低位字节unsigned longfloat转换到long; 再从 long 转换到floatunsigned longdoubleConvert directly to doubleunsigned longlong double转换到long; 再从 long 转换到double

 

原创粉丝点击