给int、float型变量赋值以及int转float的情况

本文在Win10,Cygwin64下测试。

结论:

一、 给float型变量赋十六进制的值时(如0xffffffff),都被认为是正数,当数值的二进制表示很长,则会发生截断,赋值和截断规律为:float变量可保存从左边第一个“1”开始的24位,且第24位是“1”时,只要第25位是“1”,那么截断时第24位加1(进位)。如果第24位是“0”,截断时需要第25、26位都是“1”,24位才会加1(进位)。

二、计算机内存中以补码保存整数(正数的补码是其本身,负数的补码是反码加1),因此 给char、short、 int、long等有符号变量赋值时,若所赋的值使该类型变量第1位为1,则变量得到负值
    如:   char a=0xff;   则a=-1,0xff被认为是补码。

三、int(32位)转float时,是按二进制原码转换,第1位符号位保存到float的符号位;余下的31位赋值给float,保存到float的尾数部分,赋值和截断规律同上述
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值