博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个压缩算法
阅读量:7125 次
发布时间:2019-06-28

本文共 1076 字,大约阅读时间需要 3 分钟。

package algorithm;public class Zigzag {	// 对于所有整数,符号位放最后一位。 整数数值位不变;负数除符号位外,全部取反。	public int int_to_compInt(int n) {		return (n << 1) ^ (n >> 31);	}	//符号位迁移至第一位。正数数值位不变。负数数值位取反。	public int comInt_to_int(int n) {		return (n >>> 1) ^ -(n & 1);	}	public byte[] write_to_buffer(int comInt) 	{		int tmp=comInt;		int len=0;		while(tmp!=0) 		{			tmp=tmp>>>7;			len++;		}		tmp=comInt;		byte[] buffer=new byte[len];		for (int i=0 ;i< len-1;i++) {						buffer[i]=(byte)((tmp & 0x7f)|0x80);			tmp=tmp>>>7;		}		buffer[len-1]=(byte)(tmp & 0x7f);		return buffer;	}		public int read_from_buffer(byte[] buffer)	{		int result=0;		int len=buffer.length;		for(int i=len-1;i>=0;i--) 		{			result=(result<<7)^(buffer[i]&0x7f);		}		return result;	}	public static void main(String[] args) 	{		Zigzag zigzag = new Zigzag();		int zigzagInt = zigzag.int_to_compInt(-589);		byte[] comptBytes=zigzag.write_to_buffer(zigzagInt);		int readBytes=zigzag.read_from_buffer(comptBytes);		int ori=zigzag.comInt_to_int(readBytes);		System.out.println(ori);	}}

  

转载于:https://www.cnblogs.com/wfq9330/p/9431507.html

你可能感兴趣的文章
汉诺塔算法
查看>>
php实现文件上传
查看>>
【Swap Nodes in Pairs】cpp
查看>>
HDU 1213 How Many Tables
查看>>
后台自定义下载限速控制
查看>>
【iOS-Cocos2d游戏开发之十三】CCSprite利用Bezier(贝塞尔)做抛物线动作并让CCSprite同时播放两个Action动作!...
查看>>
Quartz2D之Path使用初步
查看>>
C#模拟Https请求时出现 基础连接已经关闭 未能为 SSLTLS 安全通道建立信任关系...
查看>>
Esxi主机虚拟机迁移注意事项
查看>>
sqlplus登陆scott用户,以及退出连接
查看>>
DWZ框架-- Dialog点击保存后不能自动关闭
查看>>
SQL Server-数据库架构和对象、定义数据完整性(二)
查看>>
几种常用HTML5移动应用框架的比较
查看>>
groovy List 多字段排序
查看>>
Redis之SkipList数据结构
查看>>
第十七章 Java的容器(set)
查看>>
【漫谈Java加密技术(三)】
查看>>
解决不死神兔问题(斐波那契数列)
查看>>
谈谈我对数据库三范式的字面理解
查看>>
自我介绍
查看>>