Skip to content

00lllooolll00/Base-Convert

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bconv (Base Converter)

bconv 是一个专为嵌入式开发者和系统管理员设计的轻量级命令行进制转换工具。支持十进制、十六进制、二进制和任意进制之间的转换,具有位分组和位宽截断等特殊功能,方便调试寄存器值。

功能特性

  • 智能输入识别:自动识别 0x (十六进制)、0b (二进制) 前缀,支持负数输入
  • 多种输出格式:支持十进制、十六进制、二进制和自定义进制 (2-36) 输出
  • 格式化显示:支持二进制和十六进制的分组显示
  • 位宽控制:模拟 8/16/32/64 位数据类型的溢出行为
  • 前缀显示:可选择显示 0x0b 前缀
  • 管道友好:简洁的输出格式,便于在脚本中使用

构建和安装

# 使用 CMake 构建
cmake -B build && cd build && make

# 或者使用现有构建目录
cd build && make

# 运行程序
./bin/bconv

使用方法

bconv [选项] <数值>

默认行为

如果不加任何输出格式选项,默认显示该数值的十进制、十六进制和二进制三种形式:

$ bconv 255
Dec:255
Hex:FF
Bin:11111111

命令选项

输入格式

程序会自动识别输入格式:

  • 0x0X 前缀:十六进制 (如 0xFF)
  • 0b0B 前缀:二进制 (如 0b1010)
  • 无前缀:十进制 (如 255)

输出控制 (互斥选项)

  • -x, --hex 仅输出十六进制
  • -d, --dec 仅输出十进制
  • -b, --bin 仅输出二进制
  • -c <base> 输出为任意指定进制 (2-36)

格式化选项

  • -g, --group 启用分组显示
    • 二进制每 4 位加空格
    • 十六进制每 4 位(16bit)加空格
  • -w <bits> 位宽限制 (8, 16, 32, 64)
    • 模拟数据溢出,例如输入 0x1FF 且限制 -w 8,结果应为 0xFF
  • -u, --upper 十六进制强制大写 (如 0xFF vs 0xff)
  • -p, --prefix 开启二进制和十六进制的前缀显示 (0x 0b)

其他选项

  • -h, --help 显示帮助信息
  • -v, --version 显示版本信息

使用示例

基本转换

$ bconv 0x3A
Dec:58
Hex:3A
Bin:111010

二进制分组显示

$ bconv -b -g 48879
Bin:1011 1110 1110 1111

模拟 8 位溢出

$ bconv -d -w 8 300
Dec:44

自定义进制

$ bconv -c 16 255
Radix[16]:FF

带前缀和大写显示

$ bconv -p -u 255
Dec:255
Hex:0XFF
Bin:0b11111111

管道友好输出

# 仅输出十六进制结果
$ bconv -x 255
Hex:FF

项目结构

├── CMakeLists.txt      # 主构建配置
├── src/
│   ├── main.c         # 程序入口点,命令行参数解析
│   └── conv.c         # 核心转换逻辑实现
├── inc/
│   └── conv.h         # 头文件,包含常量定义和函数声明
├── bin/               # 构建输出目录
└── build/             # CMake 构建文件

版本信息

当前版本:0.0.1 (定义于 inc/conv.h)

注意事项

  • 支持负数输入,使用 -- 分隔符避免与选项冲突,例如:bconv -- -255
  • 自定义进制范围:2-36 (支持 0-9 和 A-Z 字符)
  • 位宽限制仅影响显示,不改变原始数值的内部表示

About

一个简单的进制转换命令行工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published