Android 和 windows C/C++/QT通讯时字节存储

ava:采用大端字节序存储数据【低地址存放数据的高位,高地址存放数据的低位,数据高位存放在数组的前面】

windows(intel平台):采用小端字节序存储数据【低地址存放数据的低位,高地址存放数据的高位,数据的高位存放在数组的后面】(windows接收java发送过来的short,int需要调用ntohs和ntohl来转换到小数端)

【数据高位】:0x1234的高位为 0x12

【数据低位】:0x1234的低位为 0x34

如: int ihex = 0x12345678;

short shex=0x1234;

java内存中存储为:

byte[] = { '0x12','0x34','0x56','0x78'}
byte[] = { '0x12','0x34'}

而windows下(intel cpu):

c/c++/qt 存储为

一个字符数组地址是从首地址开始递增的,也就是数组下标越大,内存地址越大。

=====char[] 前面是低地址,后面是高地址

char [] = {'0x78','0x56','0x34','0x12'} //QByteArray和char[]一致
char [] = {'0x34','0x12'}

设计java端client程序时,需要我们在程序中显式采用大端字节序来处理int,short,long(字符串不需要考虑),即将int,short,long转换成byte[]。【将short,int的高位存储在字符数组的前面】当然你想用小字节存放也可以,socket收到数据后打印出来看int,short的16进制数字节序,然后做处理即可。

函数如下:(大端字节序存储的函数)

/*整型转化成字符序列,类似的函数baidu可以找到很多
*执行位操作,将int i = 0x12345678; 对应二进制:
*内存中存放:低地址
*00010010 0x12
*00110100 0x34
*01010110 0x56
*01111000 0x78
*高地址
*/

// 存放到byte[]={'0x12','0x34','0x56','0x78'}位置处

public static byte[] intToBytes(int i)
{
 //bytes[0] = 00010010
 //bytes[1] = 00110100
 //bytes[2] = 01010110
 //bytes[3] = 01111000
 byte bytes[] = new byte[4];
 for (int j = 3; j >= 0; j--)
  bytes[3 - j] = (byte)(i >> 8 * (3 - j) & 0xff); //bytes[0] :直接将i的低8bits和0xff与操作即可,此时j=3

 return bytes;
}
public static byte[] shortToBytes(short s)
{
 byte bytes[] = new byte[2];

 bytes[0]=(byte)(0xFF&(s>>8)); //低地址存放高位数据,低位数据被右移8bits后删除了。(返回高8位值)
 bytes[1]=(byte)(0xFF&s); //高地址存放低位数据,位操作当然是低位执行的与操作。当前只和8bits与,(即返回低8bits值)

 return bytes;
}

以上就是对android java 和 windows C/C++/QT通讯时 数据存放字节序的理解,有需要的可以参考下

时间: 2016-07-11

Android中的windowSoftInputMode属性详解

在前面的一篇文章中,简单的介绍了一下如何实现软键盘不自动弹出,使用的方法是设置android:windowSoftInputMode属性.那么,这个属性到底是干什么的,他有什么作用呢?今天这篇文章,就是探索android:windowSoftInputMode属性的作用的. 首先,我们从这个属性的名称中,可以很直观的看出它的作用,这个属性就是来设置窗口软键盘的交互模式的. android:windowSoftInputMode属性一共有9个取值,分别是: stateUnspecified,sta

Android、iOS和Windows Phone中的推送技术详解

推送并不是什么新技术,这种技术在互联网时代就已经很流行了.只是随着进入移动互联网时代,推送技术显得更加重要.因为在智能手机中,推送从某种程度上,可以取代使用多年的短信,而且与短信相比,还可以向用户展示更多的信息(如图像.表格.声音等). 推送技术的实现通常会使用服务端向客户端推送消息的方式.也就是说客户端通过用户名.Key等ID注册到服务端后,在服务端就可以将消息向所有活动的客户端发送. 实际上,在很多移动操作系统中,官方都为其提供了推送方案,例如,Google的云推送.IOS.Windows

Windows下React Native的Android环境部署及布局示例

搭建基础环境 JDK(必须,不解释) SDK(建议使用Android Studio,集成SDK以及模拟器) genymotion(如果是使用真机或者Android Studio自带的模拟器,可以选择不装) NVM(node版本控制器,需要node4.0以上版本) 以上配置不是必须,可自行选择适合自己的环境,部分安装过程可能会涉及到翻墙,需要配置代理 配置踩坑记录 genymotion 这里选择genymotion模拟器来讲解,也会提一下Android Studio自带的模拟器的一些注意点,使用真

利用adt-bundle轻松搭建Android开发环境与Hello world(Windows)

Android开发环境有三种方式,分别是JDK+SDK+Eclipse+ADT.JDK+adt-bundle与JDK+Android Studio. 不要使用JDK+SDK+Eclipse+ADT这种方式,不是说什么太复杂的,是因为郭嘉的网络你懂的,打开SDK工具之后就根本就下载不了.Android Studio也是不行的,说好集合大量打开环境.安装的时候却还是需要联网. 建议使用JDK+adt-bundle这种方式来搭建Android开发环境.同时adt-bundle认准20131030版本.

WindowsAndroid 安装教程详解

WindowsAndroid我们可以这样来称呼我们此次Win8中运行安卓系统的方法.这款软件是北京某公司刚刚研发出来的,比起BlueStacks,要简单的多,运行速度也快很多.安卓端拥有的应用日益增多,精品也越来越多,如果将其实现在Windows端将是异常令人兴奋的事情. WindowsAndroid安装 点击下一步之后,accept同意即可. 安装完毕之后,就可以运行桌面上绿色安卓小人图标了. 首先会弹出一个CMD命令行,不要理他,稍等几秒之后就会出现程序窗口了. 启动速度之快,真心让人惊讶啊

图解Windows环境下Android Studio安装和使用教程

鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio  Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试. 最近,Google 已宣布,为了简化 Android 的开发力度,以重点建设 Android Studio 工具,到今年年底将停止支持Eclipse等其他集成开发环

Windows下搭建Android开发环境

工具/原料 JDK Eclipse ADT JDK的安装和Java环境变量的设置 1.JDK下载地址     JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html     JDK(Java Development Kit)是整个Java的核心,包括一系列Java开发的东西,安装完毕需要配置一下环境变量. 2.JAVA_HOME    JDK的安装路径,这个环境变量本身不存在,需要创建,创建完则可以利用

基于linux与windows平台下 如何下载android sdk源代码的方法详解

本文主要分2部份.第1部份介绍如何下载android sdk的源代码:第2部份介绍如何把android sdk的源代码加入到eclipse里 第1部份如何下载android sdk的源代码 1.环境. Linux 2.6 ,Python 2.4.3 或windows XP 2.工具.主要使用git工具,下载android sdk source. (1)Linux下git工具可以到 http://git-scm.com/ 下载,此工具是linux的核心代码管理工具. 安装过程如下: tar -xv

Windows下获取Android 源码方法的详解

前言:略!获取源码的原因千千万~~~ 1.安装GIT工具.GIT是林纳斯·托瓦兹大神为了管理器Linux内核开发而创立的分布式版本控制软件.下载地址:http://code.google.com/p/msysgit/一路next将安装进行到底. 2.在磁盘剩余空间较大的磁盘下新建一个文件夹,用于存放源码.我在F盘下:新建了androidsourcecode文件夹. 3.访问Android源码网站,获取你所需要的源码"下载链接".网站地址:http://android.git.kerne

Windows下快速搭建安卓开发环境Android studio

一.Android Studio简单介绍 2013年GoogleI/O大会首次发布了Android Studio IDE(Android平台集成开发环境).它基于Intellij IDEA开发环境,旨在取代Eclipse和ADT(Android开发者工具)为开发者提供更好的开发工具.既然Google一直在努力推广,相信不久以后就有望赶上Eclipse. 相比Eclipse,Android Studio IDE有自己的特点: 对UI界面设计和编写代码有更好地支持,可以方便地调整设备上的多种分辨率.

安装android开发环境原始版(windows版)

一.下载需要用到的工具:(1)下载JAVA的IDE开发工具– Eclipse到Eclipse官方网站下载Ecplise For Java EE的最新Windows版本(2)下载Java开发包 - Java SE Development Kit (JDK) JDK 6到Sun官方网站下载JDK6,选择JDK 6 Update 12(3)下载Android开发包 - Android SDK到Google的官方网站下载Android的开发包For Windows的 二.下载完需要的工具之后,开始安装(

Android开发环境安装和配置图文教程

一.安装JDK.SDK.NDK 无论是用C#和VS2015开发Androd App还是用Java和Eclipse开发Androd App,都需要先安装JDK和Android SDK.把这些安装完毕后,再在开发工具中配置一下安装的路径就行了. 1.安装jdk 下面两个都要安装: jdk-6u45-windows-i586.exe jdk-7u79-windows-i586.exe 到网上找到对应的文件后下载运行即可,Oracle的官网上有,免费下载. 2.安装Android SDK 下载下面的An

android sdk安装及开发环境部署

引言在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,文章写的尽量详细,希望对准备进入Android开发的朋友有帮助.本教程将分为五个步骤来完成Android开发环境的部署. 第一步:安装JDK. 第二步:配置Windows上JDK的变量环境 . 第三步: 下载安装Eclipse . 第四步:下载安装Android SDK . 第五步:为Eclip

Apache 服务器最新版下载、安装及配置教程图解(Windows版)

Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一.它快速.可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中.同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部.也是一个基金会的名称.一种武装直升机等等. 一.Apache的下载 1.点击链接http://httpd.apache.org/download.cgi,找到所需版本,

Eclipse搭建Android开发环境(安装ADT,Android4.4.2)

使用Eclipse做Android开发,需要先在Eclipse上安装ADT(Android Development Tools)插件. 1.安装JDK 1.7 JDK下载:http://www.jb51.net/softs/75615.html,下载JDK7软件包,我安装的是1.7.0_55版本.安装完JDK后,配置下JDK环境即可. 2.下载Eclipse Eclipse下载:http://www.jb51.net/softs/75615.html,我下载的eclipse-java-keple

CentOS Linux系统搭建Android开发环境详细介绍

CentOS Linux系统搭建Android开发环境详细介绍 很多人都是在Windows下进行Android开发,但是对于Linux,Android开发环境方面的资料比较少,今天在网上找到了一位网友分享的在CentOS Linux系统中搭建Android开发环境的过程.下面就是其介绍的配置的详细步骤原文: 由于我最近每天使用的是CentOS 5.5,所以选择CentOS5.5作为我的开发环境. 主要包括以下步骤: 1.JDK安装 2.Eclipse安装 3.ADT安装 4.Android SD

利用adt-bundle轻松搭建Android开发环境与Hello world(Linux)

本文与<利用adt-bundle轻松搭建Android开发环境与Hello world(Windows) >是姊妹篇,只是这次操作换成了Linux .拿Ubuntu做例子.还是与Windows一样.由于JDK+Eclipse+ADT+SDK或者JDK+Android Studio在安装的过程中非得联网不可.因此也选用了JDK1.7+解压即用的官方绿色版Android开发环境adt-bundle20131030去安装. 一.基本准备 首先还是与<Debian配置JDK1.7 与Linux

仅5步搞定Android开发环境部署 Android开发环境搭建教程

在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,文章写的尽量详细,希望对准备进入Android开发的朋友有帮助. 本教程将分为五个步骤来完成Android开发环境的部署. 第一步:安装JDK. 第二步:配置Windows上JDK的变量环境 . 第三步: 下载安装Eclipse . 第四步:下载安装Android SDK . 第五步:为Eclips

Linux下Android开发环境搭建的操作方法

要在Linux下搞个Android开发环境还是挺麻烦的,先看看我的效果吧: 想要在Linux下搭建Android开发环境或者其他开发环境的同学可以一起讨论哦! 步骤入下: ①由于我使用的是deepin的系统,里面会自带一个openjdk8,我们可以先将openjdk8卸载,卸载方法网上都有,不过我建议卸载之前先备份一下: ②下载JDK,AndrodStudio,SDK这一步就不用多说了吧! ③将JDK解压到你想要的目录就可以了,测试中要是出现了JAVA_TOOL_OPTIONS,之类的问题,肯定