Java字符编码

 

编码原理介绍(中文编码杂谈):

http://www.searchtb.com/2012/04/chinese_encode.html

 

int -> byte
可以直接使用强制类型转换: byte b = (byte) aInt;
这个操作是直接截取int中最低一个字节,如果int大于255,则值就会变得面目全非了

 

byte -> int
这里有两种情况,一种是要求保持值不变,例如进行数值计算,可采用强制类型转换:int i = (int) aByte;
另一种是要求保持最低字节中各个位不变,3个高字节全部用0填充,例如进行编解码操作,
则需要采用位操作(只要后8位):int i = b & 0xff;

 

 

/**采用UTF-8编码**/
public static void main(String[] args) {

		print("中");
		
		System.out.println("16进制转int进制:" + Integer.parseInt("E4", 16));
		System.out.println("16进制转byte进制:" + (byte) 0xE4);
		System.out.println("int转byte进制:" + (byte) 228);
		System.out.println("byte进制转int进制:" + (-28 & 0xff));
		
	}

/**字符转换为十进制数字**/
public static void print(String str) {
		if(str == null || str.equals("")) return;
		byte[] test = str.getBytes();
		String result = "";
		for (byte b : test) {
			result += "," + (b & 0xff);
		}
		System.out.println(result.substring(1));
	}

 

 运行结果:

 

228,184,173

16进制转int进制:228

16进制转byte进制:-28

int进制转byte进制:-28

byte进制转int进制:228

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值