c# - 转换为 Hex 2s 补码
问题描述
我得到一个这样的整数:
int myInteger = 1234;
我想得到的是匹配的十六进制签名的 2s 补充应该类似于这个:
string hexValueAsString = "052C";
我尝试使用该.ToString("X2")
方法不起作用,因为我认为它会。
uint myInteger = 1234;
string hexValueAsString = myInteger.ToString("X2"); // 52C instead of 052C
我到底做错了什么?任何帮助将非常感激。
解决方案
如果您事先知道所需的位数,则可以明确指定它:
string hexValueAsString = myInteger.ToString("X4");
如果没有,你可以这样做:
int myInteger = 1234;
string hexValueAsString = myInteger.ToString("X");
if (hexValueAsString.Length % 2 == 1)
hexValueAsString = hexValueAsString.Insert(0, "0");
推荐阅读
- angular - 将 Angular 4+ 集成到 HTML/现有网络应用程序
- c - 如何通过添加指针来修复我的 C 代码?
- harmon.ie - 最近更新后,Outlook 中的 Harmon.Ie 侧边栏为空白
- node.js - Lodash - 深度类型验证
- php - 需要使 WordPress 表单提交触发在其他站点上注册新用户的过程
- python - 如何在 Linux 中从 C 语言执行 Python 程序
- perl - 循环文件时检查 EOF
- regex - 从文件名中提取域
- python - 如果没有 setup.py 文件,下载后如何安装 GitHub 包
- database - 具有非常自定义排序的 Spring 数据分页