记录一下如何快速得到20位的整数

本文介绍了一种特殊的20位有符号整数存储方式:使用两个半字节(char型数组)实现。文章详细解释了如何通过位运算和移位操作将这个特殊格式的整数转换为常规整数格式,包括乘以2的次方来实现位的填充。

一个有符号整数,以20位形式存储,即占两个半字节,char型数组两个半。

 (((m_arrData[0]&0x7f) * 65536 + m_arrData[1] * 256 + ( m_arrData[2] & 0xF0 )) >> 4)

第一个数组乘2的16次方,意思为在这八位后加16个0。

第二个乘2的8次方,加8个零。

第三个数组取前四位。

假如数为175000,二进制0010 1010 1011 1001 1000.

前8位处理完为 00101010 00000000 00000000

第二个8位处理完为 10111001 00000000

第三个处理完为 1000 0000

相加位移,得到 0010 1010 1011 1001 1000

重点是乘2的次方来加0。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值