c++ - C / C ++中的整数到两位十六进制
问题描述
我有一个十六进制字节数组
byte hex= {0xAA, 0x55, 0x00, 0x00}
我也有一个整数值可以说
int val= 10;
现在我想将整数值转换为 4 位十六进制值,如 0x000A 并将其分别存储在第一个和最后 2 个数字的 hex[3] 和 hex[2] 中。
例如:
int val=10;
//in hex val=0x000A
msb= 0x00;
lsb= 0x0A;
hex[3]= msb;
hex[2]= lsb;
//so my final hex array will be
hex[]={0xAA, 0x55, 0x0A, 0x00}
//here is another example:
int val=300;
//in hex val=0x012C
msb= 0x01;
lsb= 0x2C;
hex[3]= msb;
hex[2]= lsb;
//so my final hex array will be
hex[]={0xAA, 0x55, 0x2C, 0x01}
如何在 C 或 C++ 中实现?提前致谢。
解决方案
简单的
int val = 10;
int msb = val/256;
int lsb = val%256;
hex[3] = msb;
hex[2] = lsb;
不适用于负整数或具有 16 个以上有效位的整数。但我猜你不在乎这个。
您的问题中有一个提示,即您有一个常见的新手误解,即十六进制整数和十进制整数之间存在一些根本区别。没有,所有整数都是同一类型的(通常是二进制的)。十进制和十六进制只是打印整数的不同方式,而不是 C++ 语言表示整数的不同方式。
推荐阅读
- php - 用户特定的待办事项列表,任务不显示
- firebase - 如何在 listview.builder 中显示原生广告与分页一起颤动?
- twilio - 欺诈信息是由我的 Twilio 号码发送的
- react-hook-form - 如何使用 React 'useForm' 钩子注册 'react-bootstrap-typeahead' 组件?
- python - 如何获取命令的最新调用,并将其保存在函数中?
- android - 相当于
是否存在重复使用 Jetpack Compose 中的设计/布局? - embedded-linux - RTOS 与嵌入式 Linux
- laravel - 无法作曲家安装包
- node.js - 如何使用 AWS SAM(微服务、nodejs)组织项目中的文件?
- javascript - 上传图片、调整大小、修改、使用 JavaScript 下载