将短边的十六进制值分配给短边
Assigning hex value of short to short
short c = 34;
c的十六进制值为22。 如何通过转换"c"将十六进制值分配给短变量(例如短 d(?
喜欢
short d = 22;
short
对象和其他整数对象没有十进制值或十六进制值。它们的值是纯数字。
、11 和 0xb 是同一数字的不同名称。
要为d
分配与 c
相同的值,请使用 d = c;
。
使用 printf
打印时,可以将值格式化为十进制数字或十六进制数字。您可以将 c
的值打印为带有 printf("%x", c);
的十六进制数字。
从一个短到另一个短的分配时,你不需要做任何类型的转换。对于PC来说,它只是一个位的集合。如何解释它们(如十六进制、十进制等(是您编码的高级决策。如果您在"c"中有正确的十六进制(或其他(值,只需将其分配给"d"。
机器对数字系统一无所知。它们用于人类对数字的感知。
您只能在发生人机交互时"翻译"数字:
- 从人形到输入时的机器形态(人>>机器( 从机器形态
- 到输出上的人类形态(机器>>人(
输出示例:
short c = 10; // for you its "decimal ten" now,
// for machine is just a handful of bits
printf("d = %dn", c); // you explicitly say here to output as decimal
printf("d = 0x%.4X", c); // you explicitly say here to output as hexadecimal
因此,与其尝试在程序的逻辑部分内部进行翻译,不如转到输出部分并在那里进行翻译。
希望对您有所帮助!
使用字符串缓冲区并sprintf
十六进制格式。
然后用atoi
写回去,如下所示
#include <stdio.h>
#include <stdlib.h>
int main()
{
short c = 34;
short d;
char string[10];
sprintf(string, "%x", c);
d = atoi(string);
printf("c = %dn", c);
printf("d = %dn", d);
return 0;
}
给出输出
c = 34
d = 22
相关文章:
- 如何在openssl-ecc中获取十六进制格式的私钥
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 通过错误处理,在C++中可靠地获得用户十六进制输入
- 为什么mpfr_printf与十六进制浮点(%a转换说明符)的printf不同
- 在 std::无符号字符的向量处存储 int 的十六进制表示形式
- 指向存储在字符串 c++ 中的十六进制
- 读取文件中所有可能的十六进制 16 字节序列并打印每个序列
- C ++如何使用UTF8十六进制代码打印UTF8符号?
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 如何在C++中将十六进制字符串转换为文本数据
- 使用 sprintf 将十六进制0xAABBCC转换为字符串"AA:BB:CC"
- 绝对编码器十六进制输入
- 为什么C++总是显示十六进制内存地址,而不仅仅是整数?
- 直接为浮点变量分配十六进制整数与通过指针转换分配之间的区别
- C++ - 重载'=',用于将十六进制值分配给对象
- 将短边的十六进制值分配给短边
- 将声明的 INT/UINT 的八进制/十六进制分配给另一个变量