gpt4 book ai didi

从 2s 补码转换为十六进制

转载 作者:行者123 更新时间:2023-11-30 21:02:12 25 4
gpt4 key购买 nike

我有一个 16 位数字,这个数字是 2 补码示例 0xFF25。让我们假设它 a=0xFF25我想从中获取原始数字“a”并保存在另一个十六进制值中,例如b(b是一个16位变量)请告诉我一种找到 b 的方法。(C 代码)

示例:

 signed short int Data_proc(unsigned char data_high, unsigned char data_low)
{
signed short int ddata;
ddata = ((data_high<<8)|data_low);
return ddata;
}


I=Data_proc(a,b);//Now I contain a 2s complement value

我想要从中获取的真实十六进制值。

最佳答案

如果我理解你的意思(我真的不知道我是否理解)你想要这样的东西

short a = 0xff25;
printf("hexadecimal %04x equals decimal %hd\n", a, a);
<小时/>

就像我和其他人在评论中所说的那样,这些数字不是以十六进制、十进制或八进制存储的,而是以二进制位、一和零的形式存储的。十六进制、十进制和八进制只是用于表示,使输入或输出看起来更好、更具可读性。

当你这样做时

int a = 0xff25;

a中实际存储了什么是位 1111111100100101 。这些位的实际含义取决于您何时打印它们。

关于从 2s 补码转换为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31894068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com