Alby's blog

世上没有巧合,只有巧合的假象。

0%

备忘:无符号数和有符号数互转公式的证明

一、概述

无意翻到之前看《深入理解计算机系统》一书时对 2.2.4 节的关于“无符号数和有符号数互转公式的证明” 的手写笔记。比较简单,但也整理一下。

对大多数 C 语言的实现而言,处理同样字长的有符号数和无符号数之间相互转换的一般规则是:数值可能会改变,但是位模式不变。

二、无符号数转有符号数


图1:原理(注:上图的 x 应该为 u,书上有误。)


图2:无符号数转有符号数公式

证明:


图3:证明过程

三、有符号数转无符号数


图4:原理


图5:有符号数转无符号数公式

证明:


图6:证明过程