栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python——求整数反码(采用除2取余方法实现)(tkinter实现)【2022-01-22】

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python——求整数反码(采用除2取余方法实现)(tkinter实现)【2022-01-22】

Python——求整数反码(采用除2取余方法实现)(tkinter实现)

1.qfm.py2.结果示例

[功能模块作者]
CSDN用户(TDTX),TDTX主页——负责求整数反码功能

【求整数原码】采用除2取余的方法,逐步形成列表,最后逆转列表即可。
【求原码】Python——求整数原码(采用除2取余方法实现)(tkinter实现)
【注】如果某整数求得原码是6位,则根据是正或负,在第7位添加0或1即可。
          即不设置固定位数的显示模式。
          据此得到的原码来求反码。

1.qfm.py
def qfm():
    import tkinter as tk
    fmwindow=tk.Tk()
    fmwindow.title("求反码")
    fmwindow.geometry("650x850")
    def sfhf():
        f=e1.get()
    def szsf():
        s=eval(e2.get())
    def xsqfm():
        f=e1.get()
        s=eval(e2.get())
        s0=s
        sp=[]
        fp=[]
        co=0
        if f=='+':
            if s==0:
                tx.insert('insert',"n+{0}计算过程:n0n00n".format(s0))
                tx.insert('insert',"+0反码为:n")
                tx.insert('insert',"00n")
            else:
                tx.insert('insert',"n+{0}计算过程:n".format(s0))
                while s>0:
                    x=s%2
                    sp.append(x)
                    s=s//2
                    tx.insert('insert',"{0}n".format(sp))
                sp.reverse()
                sp.insert(0,0)
                tx.insert('insert',"+{0}反码为:n".format(s0))
                tx.insert('insert',"{0}n".format(sp))
        if f=='-':
            if s==0:
                tx.insert('insert',"n-{0}计算过程:n1n11n".format(s0))
                tx.insert('insert',"-0反码为:n")
                tx.insert('insert',"11n")
            else:
                while s>0:
                    x=s%2
                    sp.append(x)
                    s=s//2
                sp.reverse()
                sp.insert(0,1)
#            print(sp)
                tx.insert('insert',"n-{0}计算过程:n".format(s0))
                for i in sp:
                    if co!=0:
                        if i==0:
                            fp.append(1)
                            tx.insert('insert',"{0}n".format(fp))
                        elif i==1:
                            fp.append(0)
                            tx.insert('insert',"{0}n".format(fp))
                    elif co==0:
                        fp.append(i)
                        tx.insert('insert',"{0}n".format(fp))
                    co=co+1
                tx.insert('insert',"n-{0}反码为:n".format(s0))
                tx.insert('insert',"{0}n".format(fp))
    lb1=tk.Label(fmwindow, text='输入整数的符号(+/-)', bg='orange', font=('Arial', 12), width=30)
    lb1.pack()
    e1 = tk.Entry(fmwindow,font=('Arial', 14))
    e1.pack()
    bt1=tk.Button(fmwindow,text='确认符号',width=10,font=('Arial', 12),command=sfhf)
    bt1.pack()
    
    lb2=tk.Label(fmwindow, text='输入整数(不带符号)', bg='orange', font=('Arial', 12), width=30)
    lb2.pack()
    e2 = tk.Entry(fmwindow,font=('Arial', 14))
    e2.pack()
    bt2=tk.Button(fmwindow,text='确认数字',width=10,font=('Arial', 12),command=szsf)
    bt2.pack()
    
    lb3=tk.Label(fmwindow, text='---------------------------------------------', bg='orange', font=('Arial', 12), width=30)
    lb3.pack()
    bt3=tk.Button(fmwindow,text='求解反码',width=10,font=('Arial', 12),command=xsqfm)
    bt3.pack()
    
    lb4=tk.Label(fmwindow, text='结果与过程如下:', bg='orange', font=('Arial', 12), width=30)
    lb4.pack()
    tx=tk.Text(fmwindow,width=85,height=40)
    tx.pack()
    fmwindow.mainloop()
2.结果示例

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/725192.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号