ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

编码解码程序

2021-11-15 22:02:07  阅读:162  来源: 互联网

标签:编码 Tkinter 控件 window 解码程序 Unicode 文本 原码


编码解码程序

程序设计

1.选择类型
-出现对话框显示:“请选择你要解码的数据类型”
-选项:1.数字 2.数字浮点数 3.英文文本 4.中文文本 5.图像
2.转换数据
-数字整数
原码反码补码
二进制 八进制 十六进制
-浮点数
二进制
-英文文本
根据ASCII码转换(参考:chr()ord())
-中文文本
unicode转换

tkinter

1.介绍
-Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
2.编程
-kinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。
由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。
3.步骤
-导入 Tkinter 模块
-创建控件
-指定这个控件的 master, 即这个控件属于哪一个
-告诉 GM(geometry manager) 有一个控件产生了。
4.控件

Button 按钮控件;在程序中显示按钮。
Canvas 画布控件;显示图形元素如线条或文本
Checkbutton 多选框控件;用于在程序中提供多项选择框
Entry 输入控件;用于显示简单的文本内容
Frame 框架控件;在屏幕上显示一个矩形区域,多用来作为容器
Label 标签控件;可以显示文本和位图
Listbox 列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户
Menubutton 菜单按钮控件,用于显示菜单项。
Menu 菜单控件;显示菜单栏,下拉菜单和弹出菜单
Message 消息控件;用来显示多行文本,与label比较类似
Radiobutton 单选按钮控件;显示一个单选的按钮状态
Scale 范围控件;显示一个数值刻度,为输出限定范围的数字区间
Scrollbar 滚动条控件,当内容超过可视化区域时使用,如列表框。.
Text 文本控件;用于显示多行文本
Toplevel 容器控件;用来提供一个单独的对话框,和Frame比较类似
Spinbox 输入控件;与Entry类似,但是可以指定输入范围值
PanedWindow PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。
LabelFrame labelframe 是一个简单的容器控件。常用与复杂的窗口布局。
tkMessageBox 用于显示你应用程序的消息框。

5.标准属性

Dimension 控件大小;
Color 控件颜色;
Font 控件字体;
Anchor 锚点;
Relief 控件样式;
Bitmap 位图;
Cursor 光标;

6.几何管理

pack() 包装;
grid() 网格;
place() 位置;

进制转换

-二进制:bin()
-八进制:oct()
-十六进制:hex()
-其他进制转变十进制:int('1010',2)

原码反码补码

-原码:原码 = 符号位 + 真值 (真值:数字绝对值的二进制)(符号位:最高位表示符号位(0表示正,1表示负))
-反码:负数的反码 - 原码符号位不变,其他位取反;正数就是原码
-补码:负数的补码 - 反码加一;正数就是原码

浮点数二进制

-格式:float : 符号位(首位)、指数位(8位)、尾数(23位)
-方法:
整数部分:除以2,取出余数,商继续除以2,直到得到0为止,将取出的余数逆序
小数部分:乘以2,然后取出整数部分,将剩下的小数部分继续乘以2,然后再取整数部分,一直取到小数部分为零为止。

英文编码

-ord():ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
-for语句:

中文编码

-unicode:统一码,也叫万国码、单一码(Unicode)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。一个 Unicode 字符串就是一串代码点序列,这些代码点的数值范围为:0 - 0x10ffff。这串序列需要用内存中一系列字节(意思是,取值在0 - 255 之间)来表示。将 Unicode 字符串转换成一系列字节串的规则就称为编码。
-utf-8:UTF-8 是最广泛使用的编码方式之一。UTF表示“统一码转换格式”(Unicode Transformation Format), 8 的意思是编码中使用 8 位 (8 bit)数字。
-utf-8规则:
-如果代码点小于 128,用相应的字节值表示该 Unicode 字符
-如果代码点在 128 到 0x7ff之间,这类代码点被转换成字节值在 128 - 255 之间的两个字节值。
-代码点大于 0x7ff,这类 代码点对应的 Unicode 将使用 3 - 4 个字节序列表示, 序列中每个字节的值都在 128 - 255 范围内。
-详细参考http://blog.csdn.net/qq_26886929/article/details/53993823

代码

import tkinter as tk
from tkinter.messagebox import showinfo
import unicodedata
import sys

window = tk.Tk()
window.title('编码解码')
window.geometry('400x500')

l = tk.Label(window,text='请选择你想要解码的数据类型',bg='white',width=30,height=2)
l.pack()

def number_zheng():
   
    a = eval(input("请输入一个整数:"))
    if a <= 0:
        print("二进制:",bin(-int(a)),'八进制:',oct(-int(a)),'十六进制:',hex(-int(a)))
        print("原码为:",'1'+bin(a)[3:])
        print("反码为:",'1'+bin(2**(len(bin(a)[3:])+1)-1+a)[3:])
        print("反码为:",'1'+bin(2**(len(bin(a)[3:])+1)+a)[3:])

    else:
       
        print("二进制:",bin(int(a)),'八进制:',oct(int(a)),'十六进制:',hex(int(a)))


        print('原码:',bin(int(a)),'反码:',bin(int(a)),'补码:',bin(int(a)))  



       
       
def number_xiao():
  
    
    a = input('请输入')
    def binary2(num, digits):
        onezero = f'{int(num*2**digits):b}'
        return f'{onezero[:-digits]}.{onezero[-digits:]}'
    examples = [float(a)]

    for e in examples:
        print(f'{e:>12.4f} -> {binary2(e, 4):>12}')

       


        

def English():
    c = input("请输入英文文本")
    for i in c:
        print(hex(ord(i)))
        

    

def Chinese():
   
    
    name = input("请输入:")
    print(name.encode('unicode_escape'))
    code = name.encode('unicode_escape')
    print(code.decode(('unicode_escape')))

b = tk.Button(window,text='数字整数',width=15,height=2,command=number_zheng)
b.pack()
b = tk.Button(window,text='数字小数',width=15,height=2,command=number_xiao)
b.pack()
b = tk.Button(window,text='英文文本',width=15,height=2,command=English)
b.pack()
b = tk.Button(window,text='中文文本',width=15,height=2,command=Chinese)
b.pack()


window.mainloop()

标签:编码,Tkinter,控件,window,解码程序,Unicode,文本,原码
来源: https://www.cnblogs.com/pengqiqi/p/15558459.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有