我现在做的是java socket服务端,然后和c++那边通信,我不知道怎么接受c++发的数据,然后判断,经过判断再返回相应的数据,该怎么做?谢谢
1条回答 默认 最新
- AA一叶知秋 2014-03-28 03:29关注
1、big-endian与little-endian
Endian定义:在计算机系统体系结构中用来描述在多字节数中各个字节的存储顺序。
big-endian也称高位在前、大端在前。是计算机体系结构中一种描述多字节存储顺序的术语,在这种机制中最重要字节(MSB)存放在最低端的地址 上。采用这种机制的处理器有Mortolora PowerPC微处理器系列和绝大多数的 RISC处理器。
big-endian 最直观的字节序:
内存地址从左到右与值由低到高的顺序相对应。
little-endian也称低位在前、小端在前。计算机体系结构中一种描述多字节存储顺序的术语,在这种机 制中最不重要字节(LSB)存放在最低端的地 址上。采用这种机制的处理器有Intel x86系列微处理器和一些网络通信设备。该术语除了描述多字节存储顺序外还常常用来描述一个字节中各个比特的排放次序,这里仅讨论多字节存储循序。
little-endian是最符合人的思维的字节序,低与低,高与高一一对应:
地址低位存储值的低位
地址高位存储值的高位
下面举一个例子具体说明big-endian与little-endian: int nValue = 0x01020304; 上面的整型nValue有4个字节,其中01为最高位的字节,04为最低位的字节。那么在内存(或文件)中,该值的存储循序为: 内存(或文件)地址:0x12000001 0x12000002 0x12000003 0x12000004 Big-endian : 01 02 03 04 Little-endian : 04 03 02 01 如果用一个byte数组来保存的话,也就是如下: Big-endian模式下: byte byValue[] = {0x01, 0x02, 0x03, 0x04}; Little-endian模式下:byte byValue[] = {0x04, 0x03, 0x02, 0x01};
Big-endian或是little-endian的判断:
bool IsLittleEndian()
{
int i = 1; char *p = (char*)&i;
if ( *p = 1 )
return true; // 小端
else
return false; // 大端
解决 无用评论 打赏 举报
悬赏问题
- ¥15 数学的三元一次方程求解
- ¥20 iqoo11 如何下载安装工程模式
- ¥15 本题的答案是不是有问题
- ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
- ¥15 C++使用Gunplot
- ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
- ¥15 matlab数字图像处理频率域滤波
- ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
- ¥15 ELGamal和paillier计算效率谁快?
- ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题