Linly-Talker支持语音相位一致性保持
2025/12/21 3:52:40
a = 56 b = -18 # 56的二进制:00000000 00000000 00000000 00111000 #-18的二进制:11111111 11111111 11111111 11101110 """ -18二进制实现过程: 1.18的原码:00000000 00000000 00000000 00010010 2.反码: 11111111 11111111 11111111 11101101 3.补码: 11111111 11111111 11111111 11101110 """ #与& # 按位与规则:对应位都为1则为1,否则为0 # 56: 00000000 00000000 00000000 00111000 # -18: 11111111 11111111 11111111 11101110 # 结果: 00000000 00000000 00000000 00101000 bit_and = a & b print(f"按位与({a} & {b} = {bit_and})") #按位或 (|) # 按位或规则:对应位有一个为1则为1,否则为0 # 56: 00000000 00000000 00000000 00111000 # -18: 11111111 11111111 11111111 11101110 # 结果: 11111111 11111111 11111111 11111110 bit_or = a | b print(f"按位或({a} | {b} = {bit_or})") #按位异或 (^) #按位异或规则:对应位不同则为1,相同则为0 # 56: 00000000 00000000 00000000 00111000 # -18: 11111111 11111111 11111111 11101110 # 结果: 11111111 11111111 11111111 11010110 bit_xor = a ^ b print(f"按位异或({a} ^ {b} = {bit_xor})") #按位取反 (~) # 按位取反规则:所有位取反(0变1,1变0),结果为 -(x+1) # 56: 00000000 00000000 00000000 00111000 # ~56: 11111111 11111111 11111111 11000111 bit_not_a = ~a print(f"按位取反 (~{a}) = {bit_not_a}") bit_not_b = ~b print(f"按位取反 (~{b}) = {bit_not_b}") #左移 (<<) # 左移规则:所有位向左移n位,右边补0,等价于乘以2^n # 56: 00000000 00000000 00000000 00111000 # 结果: 00000000 00000000 00000000 01110000 left_shift_a1 = a << 1 print(f"左移1位 ({a} << 1) = {left_shift_a1}") left_shift_b2 = b << 2 print(f"左移2位 ({b} << 2) = {left_shift_b2}") # 右移 (>>) #右移规则(正数):所有位向右移n位,左边补0,等价于整除2^n # 56的二进制:00111000 → 右移1位:00011100 right_shift_a1 = a >> 1 print(f"右移1位 ({a} >> 1) = {right_shift_a1}") # 右移规则(负数):所有位向右移n位,左边补1(符号位) right_shift_b2 = b >> 2 print(f"右移2位 ({b} >> 2) = {right_shift_b2}")#--------------第二题-------------------------- import datetime from functools import wraps def add_time(func): @wraps(func) def wrapper(file_path): try: content = func(file_path) now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") with open (file_path,"a",encoding="utf-8")as f : f.write(f"\n\n文件读取/修改时间:{now}") print("-"*30) print(f"当前系统时间:{now}") return content except Exception as e : print(f"错误:{e}") return wrapper # 简化版文件读取函数 @add_time def read_file(file_path): with open(file_path, "r", encoding="utf-8") as f: content = f.read() print(f"文件内容:\n{content}") # 打印原内容 return content if __name__ =="__main__": read_file("test.txt")#-----------第三题------------------ def find_duplicate(nums): res = set() # 空集合存储已遍历的数字 for num in nums: if num in res: # 发现重复 return num res.add(num) # 未重复则加入集合 #测试: nums = [1,2,3,4,2]#重复数字为2 print(f"重复的数:{find_duplicate(nums)}")import pickle import os # 定义用户数据存储文件路径 USER_DATA_FILE = "user_data.pkl" # ===================== 序列化/反序列化核心函数 ===================== def save_user_data(user_dict): """序列化用户数据并保存到文件(覆盖式保存)""" with open(USER_DATA_FILE, "wb") as f: pickle.dump(user_dict, f) # 序列化:字典→字节流 def load_user_data(): """从文件反序列化读取用户数据,无文件则返回空字典""" if not os.path.exists(USER_DATA_FILE): return {} with open(USER_DATA_FILE, "rb") as f: return pickle.load(f) # 反序列化:字节流→字典 # ===================== 登录/注册功能 ===================== def register(): """用户注册:序列化存储用户名和密码""" username = input("请输入注册用户名:").strip() password = input("请输入注册密码:").strip() # 读取已有用户数据 user_data = load_user_data() # 检查用户名是否已存在 if username in user_data: print(f"用户名 {username} 已存在!") return False # 新增用户并序列化保存 user_data[username] = password save_user_data(user_data) print(f"用户名 {username} 注册成功!") return True def login(): """用户登录:反序列化读取数据并校验""" username = input("请输入登录用户名:").strip() password = input("请输入登录密码:").strip() # 反序列化读取用户数据 user_data = load_user_data() # 校验用户名和密码 if username not in user_data: print(f" 用户名 {username} 不存在!") return False if user_data[username] != password: print("密码错误!") return False print(f"欢迎 {username},登录成功!") return True # ===================== 主程序入口 ===================== def main(): while True: print("\n===== 登录系统 =====") print("1. 注册") print("2. 登录") print("3. 退出") choice = input("请选择操作(1/2/3):").strip() if choice == "1": register() elif choice == "2": login() elif choice == "3": print("再见!欢迎下次使用~") break else: print("输入错误,请选择1/2/3!") if __name__ == "__main__": main()