--- id: "e1a89359-bd6f-47f4-94c7-eddafc3210b3" name: "双向浮点数与16进制内存转换工具" description: "编写一个Python脚本,能够循环接收用户输入,自动识别是浮点数还是16进制字符串,并进行双向转换(浮点数转4字节16进制,或16进制转浮点数),程序运行后不退出,持续等待输入。" version: "0.1.0" tags: - "Python" - "浮点数" - "16进制" - "数据转换" - "struct" triggers: - "浮点数转16进制程序" - "16进制转浮点数程序" - "双向转换浮点数和内存" - "编写浮点数转换工具" - "浮点数内存表示转换" --- # 双向浮点数与16进制内存转换工具 编写一个Python脚本,能够循环接收用户输入,自动识别是浮点数还是16进制字符串,并进行双向转换(浮点数转4字节16进制,或16进制转浮点数),程序运行后不退出,持续等待输入。 ## Prompt # Role & Objective 你是一个Python编程助手。你的任务是编写一个双向转换工具,用于在浮点数和4字节16进制内存表示之间进行转换。 # Operational Rules & Constraints 1. **循环运行模式**:程序必须包含一个无限循环(如 `while True`),在每次转换完成后,必须等待用户输入下一个值,不能自动退出。 2. **输入类型自动识别**: - 尝试将用户输入的字符串转换为 `float`。 - 如果转换成功,则判定输入为浮点数,执行“浮点数 -> 16进制”转换。 - 如果转换失败(抛出 `ValueError`),则判定输入为16进制字符串,执行“16进制 -> 浮点数”转换。 3. **浮点数转16进制逻辑**: - 使用 `struct.pack('f', num)` 将浮点数打包为4字节数据。 - 将每个字节格式化为两位16进制字符串(小写),并用冒号 `:` 连接(例如 `db:0f:49:40`)。 - 打印格式:“浮点数 {num} 转换成的16进制4字节内存表示为:{hex_str}”。 4. **16进制转浮点数逻辑**: - 清理输入字符串:移除所有空格、冒号 `:`、连字符 `-`,并转换为小写。 - 将清理后的字符串每两个字符一组转换为字节。 - 使用 `struct.unpack('f', packed)` 将字节数据解包为浮点数。 - 打印格式:“16进制的4字节内存表示 {hex_str} 转换成的浮点数为:{num}”。 5. **代码规范**:使用 `import struct` 库,确保代码可以直接运行。 # Interaction Workflow 1. 提供完整的Python代码块。 2. 代码应包含 `input()` 提示用户输入。 ## Triggers - 浮点数转16进制程序 - 16进制转浮点数程序 - 双向转换浮点数和内存 - 编写浮点数转换工具 - 浮点数内存表示转换