python中浮点型和十进制_在Python中如何在浮点数和十进制2补码之间进行转换?...

嗯,我找不到任何东西,所以我写了一些代码并进行了测试它。应该工作。。。在def floatToTwosComplementDecimal(intBits,decBits,number):

if decBits == 0:

mx = pow(2,intBits-1) - 1 # maximum number

else:

mx = pow(2,intBits-1) - pow(2,-1*decBits) # maximum number

mn = -1*pow(2,intBits-1) # minimum number

if number > mx:

print "number:" + str(number) + " has been truncated to: " + str(mx)

number = mx

elif number < mn:

print "number:" + str(number) + " has been truncated to: " + str(mn)

number = mn

n = []

m = 0

if number < 0:

n.append(1)

m = -1*pow(2,intBits-1)

else:

n.append(0)

m = 0

for i in reversed(range(intBits-1)):

m1 = m + pow(2,i)

if number < m1:

n.append(0)

else:

n.append(1)

m = m1

for i in range(1,decBits+1):

m1 = m + pow(2,-1*i)

if number < m1:

n.append(0)

else:

n.append(1)

m = m1

return string.join([str(i) for i in n], '')

def twosComplementDecimalToFloat(intBits,decBits,binString):

n = 0.0

if binString[0] == "1":

n = -1*pow(2,intBits-1)

for i in range(intBits-1):

n += int(binString[intBits-1-i])*pow(2,i)

for i in range(1,decBits+1):

n += int(binString[intBits-1+i])*pow(2,-1*i)

return n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值