请问如何将一个高8位的byte和低8位的byte还原成一个int型?
请问如何将一个高8位的byte和低8位的byte还原成一个16位有符号的int?
例如low=180,高=10
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
请问如何将一个高8位的byte和低8位的byte还原成一个16位有符号的int?
例如low=180,高=10
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(12)
回答的太简洁了,赞一个
#include<stdio.h>
int main(){
int ah = 10;
int al = 180;
int result = 0;
result = (ah<<8)|al;
printf("%dn",result);
}
位移
翻过来 int TO byte
void intToByte(int i,byte *bytes,int size = 4)
{
//byte[] bytes = new byte[4];
memset(bytes,0,sizeof(byte) * size);
bytes[0] = (byte) (0xff & i);
bytes[1] = (byte) ((0xff00 & i) >> 8);
bytes[2] = (byte) ((0xff0000 & i) >> 16);
bytes[3] = (byte) ((0xff000000 & i) >> 24);
return ;
}
嵌入式里面经常有这样的问题
high<<8+low或者这样
high<<8 | low,都一样的
谢谢你,我还是把基础理论掌握一下才行
class Program
是的,我也觉得不对。能帮我示范一下么?
这样不会得到你想要结果
不知道怎么写啊? result=low | high ?这样吗?
直接或就能求得