位扩展和位截断

本文深入探讨了位扩展和位截断的概念,详细解释了正数、负数在扩展与截断过程中的变化,并通过实例展示了二进制码到无符号数和补码的转换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         一个小规律, 2^n-2^(n-1) = 2^(n-1)  3^n-3^(n-1)=2*3^(n-1) 。

         位扩展其实很好理解,正数和0往前加零就够了,负数则是往前加一,不过注意位扩展往往都是隐形的,不知不觉就扩展了,比如 short i = 6; int j = i;  注意 位扩展 数值是不变的

         位截断,就是保留低k位二进制码, 比如把一个四位二进制码截断成三位,这不可避免的改变了原来的值,

         对于无符号数,B2U([X',X'',X''',X''''......]) MOD 2^k 就可以了。
         对于有符号数,U2T(B2U([x',x'',x''',x''''.....])mod 2^k)      

         注: B2U  二进制码解释为无符号数   U2T  无符号数编码解释为补码

转载于:https://www.cnblogs.com/liboyan/p/4753160.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值