C++中>>,&运算符拆分一个int类型数据的高八位和低八位

C++中>>,&运算符可以获取一个int类型数据的高八位和低八位。在C++中一个int类型的整型数据采用两个字节存储,占用16位。但在项目当中经常用到高低字节的互换。这就需要把一个int类型的数据的高字节和低字节拆分开来重新组合。

一个16位整数(int)是由2个字节(Byte)组成的,每个字节占内存8个位(bit),那么这个整数表示成2进制就是16位,高8位和低8位就是前后这两个部分。数据在计算机中存储是从低位开始向高位进位的,高8位指第8到第15位,低8位指第0位到第7位。

>>右移运算符,将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0。我们可以用这个运算符把一个整数右移8位,这样就舍弃了这个整数的低八位,只保留高八位了。

&按位与运算符,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0。把一个整数和0x00ff求与,就会舍弃高八位,只保留第八位了。

c++代码如下:

int value=15;//需要拆分的整数
unsigned char     data[2]={0x00,0x00);//定义数组并初始化赋值
data[0] = ((short int)(value))  >>  8;//高八位
data[1] = ((short int)(value))  &  0x00ff;//低八位


这样经过把一个int整数进行>>,&运算后高八位保存在data[0]中,低八位保存在data[1]中。

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值