欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言版和JAVA版 把一个字节正序(高位在前)转为逆序(低位在前) 和 逆序转为正序

程序员文章站 2022-03-21 21:17:08
...

一、C语言版 把一个字节正序(高位在前)转为逆序(低位在前) 和 逆序转为正序

// xhrrj.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
//把一个字节 高位在前 转为 低位在前
unsigned char Byte_Change(unsigned char ter)
{
	unsigned char i=0;
	unsigned char tem=0;	
	for(i=0;i<8;i++)
	{
		tem=tem<<1; //低位向左移
		tem=((ter>>i)&0x01)|tem; //低位的值
	}
	return tem;
}
//把一个字节 低位在前 转为 高位在前
unsigned char Byte_Change2(unsigned char ter)
{
	unsigned char i=0;
	unsigned char tem=0;	
	for(i=0;i<8;i++)
	{
		tem=tem>>1; 
		tem=((ter<<i)&0x80)|tem; //位的值
	}
	return tem;
}
void main(int argc, char* argv[])
{
	unsigned char a=0;
	a=Byte_Change(0x22);
	printf("%02X\n",a);
	a=Byte_Change2(0x44);
	printf("%02X\n",a);
}

结果:

44
22
Press any key to continue


2.JAVA版

public class ByteChange {

	static //把一个字节 高位在前 转为 低位在前
	int Byte_Change(int ter)
	{
		int i=0;
		int tem=0;	
		for(i=0;i<8;i++)
		{
			tem=tem<<1; //低位向左移
			tem=((ter>>i)&0x01)|tem; //低位的值
		}
		return tem;
	}
	//把一个字节 低位在前 转为 高位在前
	static int Byte_Change2(int ter)
	{
		int i=0;
		int tem=0;	
		for(i=0;i<8;i++)
		{
			tem=tem>>1; 
			tem=((ter<<i)&0x80)|tem; //位的值
		}
		return tem;
	}


	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a=0;
		a=Byte_Change(0x22);
		System.out.printf("%02X\n",a);
		a=Byte_Change2(0x44);
		System.out.printf("%02X\n",a);
	}

}