由于工作需要,自己写的一个php实现java的byte数组转换的类。
<?php
/**
* 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<$len;$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;
}
}
?>
分享到:
相关推荐
在Java编程中,将十六进制位串转化为byte数组是一项常见的操作,特别是在处理二进制数据、网络通信或者加密解密等领域。这篇博文"把十六进制的位串转化为byte数组"可能就是针对这个主题提供了一个实用的方法或工具。...
在Java中,如果直接尝试将byte数组转换为JSON对象,会遇到问题,因为JSON不支持直接嵌入二进制数据。为了解决这个问题,我们可以利用Base64编码技术。Base64是一种用于将任意二进制数据转换为ASCII字符集表示的方法...
介绍php字符串与byte字节数组转化类,转换一个String字符串为byte数组,将字节数组转化为String类型的数据,转换一个int为byte数组,从字节数组中指定的位置读取一个Integer类型的数据,转换一个shor字符串为byte...
最后,为了便于查看,将byte数组转换为UTF8字符串并在文本框中显示。 此外,代码还包含了一个将byte数组还原为图片的功能,这在调试或测试时非常有用: ```csharp private void button1_Click(object sender, ...
在Java中,byte[]和byte可以通过合并来实现。合并的方法可以使用系统提供的数组复制方法System.arraycopy()。下面是一个简单的示例代码: ```java public byte[] byteMerger(byte byte_1, byte[] byte_2) { byte[] ...
在这个示例中,密钥首先是以字符串形式存在,然后通过`Hex.decodeHex()`方法将其从Hex编码转换回原始的字节数组,这是因为AES算法需要字节形式的密钥。如果密钥是经过Hex编码的,那么在使用之前必须进行解码。 接...
在Java中,我们可以使用`java.util.zip`包中的`ZipOutputStream`和`ZipEntry`类来实现文件的压缩。以下是一个简单的示例,展示如何将单个文件压缩成ZIP文件: ```java import java.io.*; import java.util.zip.*; ...
通过以上代码,Java程序员现在可以使用`PackUtil.pack()`将16进制字符串转换为字节数组,然后使用`PackUtil.unpack()`将字节数组恢复为16进制字符串。这种方法虽然不能完全模拟PHP的`pack`和`unpack`函数的所有功能...
7. **数组**:Java中的数组是一组相同类型的元素集合,可以是一维、二维或多维。 8. **类与对象**:学习如何定义类,声明属性(fields)和方法(methods),并通过new关键字实例化对象。 9. **封装、继承和多态**...
1. `encodeBytes(byte[])`:将字节数组编码为Base64字符串。 2. `decode(String)`:将Base64字符串解码回字节数组。 3. `getEncoder()` 和 `getDecoder()`:获取Base64编码器和解码器对象,可以进行自定义配置,例如...
这个场景描述的是使用HTML、JSP(JavaServer Pages)或者PHP来实现一个简单的文件上传功能,将小图片存入数据库。下面将详细介绍这个过程涉及的关键知识点。 1. **HTML表单**: 在HTML页面中,我们需要创建一个`...
这个函数读取流的所有数据,并将其转换为Byte数组。 4. **保存图片**:Byte数组可以直接写入文件系统,生成图片文件。在示例代码中,使用了`File.WriteAllBytes()`方法,将 Byte 数组写入到服务器的指定路径下,...
37. **编码转换**:使用`new String(bytes, "GBK").getBytes("ISO-8859-1")`实现GBK到ISO-8859-1的转换。 38. **四舍五入**:使用`Math.round()`方法进行四舍五入。 39. **随机数**:`Random`类提供生成随机数的...
若类型不匹配,可以通过类型转换来确保一致性。 2. **无返回值**:`return;` - **适用情况**:当方法声明为`void`类型,表示该方法不返回任何值。 - **作用**:直接退出方法,不返回任何值。 #### 二、JSP技术...
以OkHttp为例,你需要创建一个请求体,将Bitmap转换为字节数组: ```java ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, ...
接下来,我们需要将图片转换为字节数组以便上传。可以使用`BitmapFactory`和`ByteArrayOutputStream`完成: ```java Bitmap bitmap = MediaStore.Images.Media.getBitmap(contentResolver, imageUri); ...
`uploadImage`函数中,我们需要使用HttpURLConnection或者OkHttp等网络库将图片数据转换为字节数组,然后发送POST请求到服务器: ```java private void uploadImage(Bitmap image) { ByteArrayOutputStream baos =...
在上述代码中,`readFileToBytes()`是一个辅助方法,用于读取文件内容并转换为字节数组。`responseListener`和`errorListener`分别用于处理成功的响应和错误情况。 最后,要注意的是,文件上传可能遇到网络不稳定、...
但是,Java的字符串是Unicode的,`getBytes()`会根据指定的字符集编码字符串为字节数组。例如: ```java String str = "你好,世界"; int byteCount = 5; // 指定字节数 byte[] bytes = str.getBytes("UTF-8"); // ...