백엔드 개발 PHP 튜토리얼 php兑现java的byte数组转换

php兑现java的byte数组转换

Jun 13, 2016 am 10:54 AM
byte bytes param position val

php实现java的byte数组转换

由于工作需要,自己写的一个php实现java的byte数组转换的类。



/**
?* 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 ??????? $val |= $bytes[$position + 2] & 0xff;
??????? $val ??????? $val |= $bytes[$position + 1] & 0xff;
??????? $val ??????? $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 ??????? $val |= $bytes[$position] & 0xFF;
??????? return $val;
??? }
???
}
?>

1 楼 tron.lu 2012-02-06  
3des 加密的时候用吗?

2 楼 heaven__18 2012-03-13  
在很多地方都能用的到。
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

HWID V 2.2 수동 활성화 방법 및 튜토리얼 HWID V 2.2 수동 활성화 방법 및 튜토리얼 Oct 20, 2023 pm 07:17 PM

수동 활성화를 원하는 사용자를 위한 것입니다. 이 작업을 수행하는 데 필요한 도구에 대한 도움이 필요하면 여기를 확인하세요. 수동 활성화 프로세스는 두 부분으로 나눌 수 있습니다. 1- 준비된 배치 파일에서 인터넷이 활성화되어 있는지 확인하십시오. 관리자 권한으로 Windows Powershell을 열고 다음을 입력하여 제공된 순서대로 명령을 나열하십시오. 키를 입력하세요(위 목록의 키로 교체). 다음 명령을 사용하세요. <key>slmgr/ipk<key> 여기에서 범용 티켓을 다운로드하고 다운로드한 파일을 추출하세요. 이제 Powershell(Get-ItemProper)에 다음 코드를 입력합니다.

H5의 위치 속성의 유연한 적용 기술 H5의 위치 속성의 유연한 적용 기술 Dec 27, 2023 pm 01:05 PM

H5에서 위치 속성을 유연하게 사용하는 방법 H5 개발에서는 요소의 위치 지정 및 레이아웃이 관련되는 경우가 많습니다. 이때 CSS 위치 속성이 작동하게 됩니다. 위치 속성은 상대 위치 지정, 절대 위치 지정, 고정 위치 지정 및 고정 위치 지정을 포함하여 페이지에서 요소의 위치 지정을 제어할 수 있습니다. 이번 글에서는 H5 개발에서 position 속성을 유연하게 활용하는 방법을 자세히 소개하겠습니다.

Golang 함수 바이트, 룬, 문자열 타입 변환 스킬 Golang 함수 바이트, 룬, 문자열 타입 변환 스킬 May 17, 2023 am 08:21 AM

Golang 프로그래밍에서 바이트, 룬 및 문자열 유형은 매우 기본적이고 일반적인 데이터 유형입니다. 문자열 및 파일 스트림과 같은 데이터 작업을 처리하는 데 중요한 역할을 합니다. 이러한 데이터 작업을 수행할 때 일반적으로 서로 변환해야 하며, 이를 위해서는 일부 변환 기술을 숙달해야 합니다. 이 기사에서는 독자가 이러한 데이터 유형을 더 잘 이해하고 프로그래밍 실습에 능숙하게 적용할 수 있도록 돕기 위해 Golang 함수의 바이트, 룬 및 문자열 유형 변환 기술을 소개합니다.

CSS 레이아웃 속성 최적화 팁: 고정 및 Flexbox 위치 지정 CSS 레이아웃 속성 최적화 팁: 고정 및 Flexbox 위치 지정 Oct 20, 2023 pm 03:15 PM

CSS 레이아웃 속성 최적화 팁: positionsticky 및 flexbox 웹 개발에서 레이아웃은 매우 중요한 측면입니다. 좋은 레이아웃 구조는 사용자 경험을 향상시키고 페이지를 더욱 아름답고 탐색하기 쉽게 만들 수 있습니다. CSS 레이아웃 속성은 이 목표를 달성하는 데 핵심입니다. 이 기사에서는 일반적으로 사용되는 두 가지 CSS 레이아웃 속성 최적화 기술인 positionsticky와 flexbox를 소개하고 구체적인 코드 예제를 제공합니다. 1. 직위

golang에서 '정의되지 않음: bytes.Split' 오류를 해결하는 방법은 무엇입니까? golang에서 '정의되지 않음: bytes.Split' 오류를 해결하는 방법은 무엇입니까? Jun 25, 2023 pm 02:02 PM

Go 언어에서 bytes 패키지는 바이트 유형을 조작하기 위한 패키지이며 Split() 메서드와 같은 유용한 메서드를 많이 포함합니다. 그러나 Split() 메서드를 사용하는 경우 "정의되지 않음: bytes.Split" 오류가 발생할 수 있습니다. 이 오류는 일반적으로 Go 버전이 호환되지 않거나 필요한 종속 라이브러리가 부족하여 발생합니다. 이 기사에서는 이 오류를 해결하는 몇 가지 방법을 소개합니다. 방법 1: 다음과 같이 Go 버전을 업그레이드합니다.

1바이트는 몇 비트와 같습니다. 1바이트는 몇 비트와 같습니다. Mar 19, 2021 pm 02:52 PM

1바이트는 8비트와 같습니다. 데이터 저장은 "바이트"(Byte) 단위로 이루어지며, 데이터 전송은 대부분 "비트"(bit) 단위로 이루어지며, 1비트는 0 또는 1(즉, 바이너리)을 나타내며, 8비트(bit)마다 ) Byte는 정보의 가장 작은 단위이므로 "1Byte=8bit"입니다.

html에서 div를 맨 아래에 넣는 방법 html에서 div를 맨 아래에 넣는 방법 Mar 02, 2021 pm 05:44 PM

HTML 하단에 div를 배치하는 방법: 1. "div{position:fixed;}" 구문을 사용하여 위치 속성을 사용하여 브라우저 창을 기준으로 div 태그를 배치합니다. 2. 하단까지의 거리를 설정합니다. 0 페이지 하단에 div를 영구적으로 배치하려면 구문은 "div{bottom:0;}"입니다.

h5에서 위치를 사용하는 방법 h5에서 위치를 사용하는 방법 Dec 26, 2023 pm 01:39 PM

H5에서는 position 속성을 사용하여 CSS를 통해 요소의 위치 지정을 제어할 수 있습니다. 1. 상대 위치 지정, 구문은 "style="position:relative;"; 2. 절대 위치 지정, 구문은 "style="position: 절대;" "; 3. 고정 위치 지정, 구문은 "style="position:fixed;" 등입니다.

See all articles