首页 > 其他 > 详细

find slot

时间:2019-10-23 21:15:52      阅读:79      评论:0      收藏:0      [点我收藏+]
address_list = a[1].split(\n)
len = address_list.__len__()
#print(len)
addr_list = []  # 需要接着这个列表做处理
addr_span_list = []
for li in address_list[0:len-1]:
    ll = li.split( )
    addr_list.append(int(ll[-3],16))
    addr_list.append(int(ll[-2],16))
    addr_span_list.append(int(ll[-1],16))

max_num_index_list = list(map(addr_span_list.index, heapq.nlargest(len-1, addr_span_list)))
remain = 0x19b0
j = 0
for i in max_num_index_list:
    j = j + 1
    remain = remain - addr_span_list[i]
    if remain <= 0:
        break
self.free_slots = j
if(j <= 1):
    a = sorted(max_num_index_list[0:1])
    k = a[0]
    self.unWidget2.lineEdit.setText(str(hex(addr_list[k*2 + 1] - addr_span_list[k] - remain)))
    self.unWidget2.lineEdit_2.setText(str(hex(addr_list[k*2 + 1])))
elif(j <= 2):
    a = sorted(max_num_index_list[0:2])
    k = a[0]
    self.unWidget2.lineEdit.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k])))
    self.unWidget2.lineEdit_2.setText(str(hex(addr_list[k * 2 + 1])))
    k = a[1]
    self.unWidget2.lineEdit_3.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k] - remain)))
    self.unWidget2.lineEdit_4.setText(str(hex(addr_list[k * 2 + 1])))
elif(j <= 3):
    a = sorted(max_num_index_list[0:3])
    k = a[0]
    self.unWidget2.lineEdit.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k])))
    self.unWidget2.lineEdit_2.setText(str(hex(addr_list[k * 2 + 1])))
    k = a[1]
    self.unWidget2.lineEdit_3.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k])))
    self.unWidget2.lineEdit_4.setText(str(hex(addr_list[k * 2 + 1])))
    k = a[2]
    self.unWidget2.lineEdit_5.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k] - remain)))
    self.unWidget2.lineEdit_6.setText(str(hex(addr_list[k * 2 + 1])))
elif(j <= 4):
    a = sorted(max_num_index_list[0:4])
    k = a[0]
    self.unWidget2.lineEdit.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k])))
    self.unWidget2.lineEdit_2.setText(str(hex(addr_list[k * 2 + 1])))
    k = a[1]
    self.unWidget2.lineEdit_3.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k])))
    self.unWidget2.lineEdit_4.setText(str(hex(addr_list[k * 2 + 1])))
    k = a[2]
    self.unWidget2.lineEdit_5.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k])))
    self.unWidget2.lineEdit_6.setText(str(hex(addr_list[k * 2 + 1])))
    k = a[3]
    self.unWidget2.lineEdit_7.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k] - remain)))
    self.unWidget2.lineEdit_8.setText(str(hex(addr_list[k * 2 + 1])))
else:
    print(空闲块的块数需要大于4!)

 

find slot

原文:https://www.cnblogs.com/jiuweideqixu/p/11728601.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!