我似乎无法找到有关如何使用二进制补码示例AD100002将十六进制转换为十进制的答案,我已经知道如何对无符号的补码而不是符号2的补码进行计算。
任何帮助都会做或实例化)
(谢谢您的时间)
(对不起,英语不好。)
{无符号}->(AD100002 =(10×16⁷)+(13×16⁶)+(1×16⁵)+(0×16⁴)+(0×16³)+(0×16²)+(0× 16¹)+(2×16⁰)= 2903506946)。
答案 0 :(得分:1)
对二进制/十六进制值的二进制补码的基本解释是翻转每个数字然后加1。例如,假设我们具有以下值:
0xA5
要做的第一件事是将值转换为二进制数:
0xA5 -> 10100101
要执行二进制补码,请翻转所有位:
10100101
||
\/
01011010
,然后添加1:
01011011
将此二进制数转换为十进制数将产生91。因此,十六进制值“ 0xA5”的二进制补码为-91。
(如果将十六进制值视为整数的有符号位表示形式,则仅在二进制表示形式的最高有效位为1时才执行二进制补码。如果为0,则将其余位视为正常。)