菜鸡日记5

1.今天是第一次参加VR小组的周会,因为没有设备的缘故所以目前的工作感觉都没什么进展。邵伟哥是小老板,感觉有些徐老师的风格了已经。基哥貌似暂时没什么方向,希望他能早点找到发力点吧。韵乔姐一般不开口,但是感觉她是有点实力的,毕竟那么变态的软件仅仅看个readme就猜出怎么使用。徐景行学长说话特别冲。。。还没验证的东西先给否了,或许是恃才傲物?(听说代码挺强)。金老师的话,感觉不能算有leadership,听说是扛把子。

2.一个简单的例子:十进制数转换二进制数

num=int(302)
if num<0:
  isneg=True
  num=abs(num)
else:
  isneg=False
result=''
if num==0:
  result='0'
while num>=1:
  result=str(int(num%2))+result
  num=num/2

if isneg:
result='-'+result

print(result)

和教程视频有点不一样:(1)num必须要强制int才会按照int的计算方式来;(2)计算到小数之后,就算本来是int型的1,除2还是0.5,只能再一次强制int。。。

整个程序的逻辑还是很棒的:通过不停的除2取余数(不是1就是0)来进行一个字符串的累加

 

3.小数的十进制二进制转换

基本原理:找到一个足够大的二进制数A(应当是2的次幂),该二进制数A乘上所要转换的小数之后可以变为一个整数。然后把该整数转换为二进制形式B,并且将B往小数点前移A所对应的二进制位数。代码如下:

x=float(input('Enter a number between 0 and 1:'))
p=0
while ((2**p)*x)%1!=0:
  p+=1
  print('remainder ='+str((2**p)*x-int((2**p)*x)))

num=int((2**p)*x)
result=''
if num==0:
  result='0'
while num>0:
  result=str(num%2)+result
  num=int(num/2)

for i in range(p-len(result)):
  result='0'+result
#result=result[0:-p]+'.'+result[-p:]
result='0'+'.'+result
print('The binary presentation of this fraction is:'+ result)

posted @ 2017-07-25 20:57  Zeke_Blood  阅读(184)  评论(0编辑  收藏  举报