/**

* byte数组与字符串转化类

* @author zikie

* Created on 2011-7-15

*/

class Bytes {

/**

* 转换一个String字符串为byte数组

* @param $str 需要转换的字符串

* @param $bytes 目标byte数组

* @author Zikie

*/

public static function getBytes($str) {

$len = strlen($str);

$bytes = array();

for($i=0;$i

if(ord($str[$i]) >= 128){

$byte = ord($str[$i]) - 256;

}else{

$byte = ord($str[$i]);

}

$bytes[] =  $byte ;

}

return $bytes;

}

/**

* 将字节数组转化为String类型的数据

* @param $bytes 字节数组

* @param $str 目标字符串

* @return 一个String类型的数据

*/

public static function toStr($bytes) {

$str = '';

foreach($bytes as $ch) {

$str .= chr($ch);

}

return $str;

}

/**

* 转换一个int为byte数组

* @param $byt 目标byte数组

* @param $val 需要转换的字符串

* @author Zikie

*/

public static function integerToBytes($val) {

$byt = array();

$byt[0] = ($val & 0xff);

$byt[1] = ($val >> 8 & 0xff);

$byt[2] = ($val >> 16 & 0xff);

$byt[3] = ($val >> 24 & 0xff);

return $byt;

}

/**

* 从字节数组中指定的位置读取一个Integer类型的数据

* @param $bytes 字节数组

* @param $position 指定的开始位置

* @return 一个Integer类型的数据

*/

public static function bytesToInteger($bytes, $position) {

$val = 0;

$val = $bytes[$position + 3] & 0xff;

$val <<= 8;

$val |= $bytes[$position + 2] & 0xff;

$val <<= 8;

$val |= $bytes[$position + 1] & 0xff;

$val <<= 8;

$val |= $bytes[$position] & 0xff;

return $val;

}

/**

* 转换一个shor字符串为byte数组

* @param $byt 目标byte数组

* @param $val 需要转换的字符串

* @author Zikie

*/

public static function shortToBytes($val) {

$byt = array();

$byt[0] = ($val & 0xff);

$byt[1] = ($val >> 8 & 0xff);

return $byt;

}

/**

* 从字节数组中指定的位置读取一个Short类型的数据。

* @param $bytes 字节数组

* @param $position 指定的开始位置

* @return 一个Short类型的数据

*/

public static function bytesToShort($bytes, $position) {

$val = 0;

$val = $bytes[$position + 1] & 0xFF;

$val = $val << 8;

$val |= $bytes[$position] & 0xFF;

return $val;

}

}

?>

php 文件 byte数组,php实现java的byte数组转换相关推荐

  1. Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素-un

    ylbtech-Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素 1.返回顶部 1. Java 实例 - 查找数组中的重复元素  Java 实例 以下实例 ...

  2. Java-Runoob-高级教程-实例-数组:03. Java 实例 – 获取数组长度-*

    ylbtech-Java-Runoob-高级教程-实例-数组:03. Java 实例 – 获取数组长度 1.返回顶部 Java 实例 - 获取数组长度  Java 实例 本文我们将为大家介绍如何使用数 ...

  3. java二维数组的创建,java二维数组创建方法

    java动态创建二维数组,从零学java笔录-第31篇 图解二位数组在内存中存储,java二维数组动态赋值,java二维数组创建方法 二维数组的定义 type arrayName[ ][ ]; typ ...

  4. java的byte php_java_浅谈java的byte数组的不同写法,(由于篇幅原因阐述的不够详 - phpStudy...

    浅谈java的byte数组的不同写法 (由于篇幅原因阐述的不够详细科学,不喜勿喷). 经常看到java中对byte数组的不同定义,粗略整理的一下: 一个字节(byte)=8位(bit),"b ...

  5. java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

  6. java中定义byte数组,浅谈java的byte数组的不同写法

    (由于篇幅原因阐述的不够详细科学,不喜勿喷). 经常看到java中对byte数组的不同定义,粗略整理的一下: 一个字节(byte)=8位(bit),"byte数组"里面全部是&qu ...

  7. JAVA中一维数组的作用,JAVA中一维数组和二维数组的定义

    在java中数组被看成是一个对象 在定义数组时,有两种定义方法:int[] a 和int a[]:第二种是C/C++对数组定义方式,对于JAVA建议采用第一种定义方式. 总的原则:任何对象在被调用之前 ...

  8. java 数组 参数 ppt,Java自学课件-数组.ppt

    <Java自学课件-数组.ppt>由会员分享,可在线阅读,更多相关<Java自学课件-数组.ppt(23页珍藏版)>请在人人文库网上搜索. 1.Java程序设计,第6章 数组, ...

  9. php集合与数组的区别,java集合与数组的区别

    数组 数组是java语言内置的数据类型,他是一个线性的序列,所有可以快速访问其他的元素,数组和其他语言不同.(推荐学习:java课程) 当你创建了一个数组时,他的容量是不变的,而且在生命周期也是不能改 ...

最新文章

  1. 如何在CentOS 5.x 中安装Windows Azure Linux Agent (WALA)
  2. 为mysql cluster添加sql节点
  3. php网页多个倒计时,怎么实现一个页面有多个倒计时同时进行
  4. 【JavaScript吉光片羽】--- 滑动条
  5. 在Linux中使用matplotlib进行科学画图
  6. 面试题 01.01. 判定字符是否唯一 (计数排序思想)
  7. canvas 绘制直线 并选中_canvas绘制飞线效果
  8. 获取点击按钮的元素_怎么按顺序自动点击网页所有链接
  9. centos安装pip失败:No package pip available.
  10. ApacheCN 翻译活动进度公告 2019.5.31
  11. EXCEL 对筛选结果进行排序
  12. 【支付】银行卡收单业务
  13. VR全景:三维电商势不可挡
  14. TTTTTTZZZZZZ(系统编程---初识线程,查看线程调用栈的三种方法)10
  15. 零基础Matlab Note9--离散数据绘图set(gca, )
  16. 枚举方法在swtch中的用法
  17. STM32加密保护工具 | STM32Trust介绍、解决方案
  18. PHP汉字转拼音的两种方法+PHP提取汉字(中文)方法
  19. Python-标准库calendar的使用
  20. Selenium:浏览器操作

热门文章

  1. 看了做人收获感悟笔记
  2. 如何用认知和人性做最棒的程序员
  3. 基于arm的嵌入式QT开发(课程设计)
  4. PGA与SGA的区别,PGA的功能介绍
  5. 基于Logistic混沌序列图像加密
  6. android popupmenu 动态添加,android中PopupMenu的使用
  7. GEEer成长日记五:Sentinel-2计算NDVI并逐月时间序列分析
  8. 人力资源知识大全(可以做全盘)
  9. linux系统卡死鼠标不动,linux桌面环境鼠标假死.点不动
  10. Skin++使用详解-使用方法及注意事项