用一个实例来说明汉字如何转换为对应的字节。
中文编码是UNIQUE编码,即2个字节标识一个汉字;
如:我 = byte[] bs3 =new byte[]{-50,-46} = GBK编码10进制为52946。
如:
String str2 = "我";
byte[] bs2 = str2.getBytes("gbk");
我用gbk编码后的字节为:byte[] bs2 = new byte[]{-50,-46}
中间计算机做了什么呢!
1 我转换为字符“我”
2 找到相应的编码表 ,即gbk的编码表,然后拿到编码表对应 “我” 的二进制数值,
3 二进制数字解析为2个字节,字节1的十进制为=-50,字节2的十进制为=-46
4 返回两个字节的数组=bs2
将bs2转换为“我”这个汉字:
1 计算-50对应的二进制数值="11001110"(补码)
计算方式:String tString = Integer.toBinaryString((-50 & 0xFF) + 0x100).substring(1);
Java & 0xff:https://wenku.baidu.com/view/e454c202ed630b1c59eeb5ea.html
2 计算-46对应的二进制数值="11010010"(补码)
计算方式:String tString = Integer.toBinaryString((-50 & 0xFF) + 0x100).substring(1);
3 拼接两个字节为=1100111011010010=52946
转换地址:http://tool.oschina.net/hexconvert/
4 查找“我”GBK编码10进制数值是52946,正好与上面相等
汉字与编码转换:http://www.mytju.com/classcode/tools/encode_gb2312.asp
String str2 = "我"; // char a = str.charAt(0); byte[] bs = str2.getBytes("utf-8"); byte[] bs2 = str2.getBytes("gbk"); // -50,-46 我 byte[] bs3 =new byte[]{-50,-46,97,1}; System.out.println(new String( bs3,"gbk")); System.out.println( "111"); System.out.println( (-50 & 0xFF) ); String tString = Integer.toBinaryString((-50 & 0xFF) + 0x100); String tString2 = Integer.toBinaryString((-46 & 0xFF) + 0x100).substring(1); System.out.println(tString +" "+tString2 );
org.springframework.util.ObjectUtils :对象操作的工具类,判null,isArray,containsElement,hashCode,nullSafeToString
相关推荐
本文将深入解析Delphi中关于十进制、二进制、十六进制以及字符串之间的转换方法,旨在为程序员提供实用且精炼的代码示例。 ### 十进制转其他进制 #### 十进制转二进制 在Delphi中,将一个整数转换成二进制字符串...
本文将深入探讨如何在C语言环境中实现二进制字符串与十六进制字符串之间的转换,并结合MFC(Microsoft Foundation Classes)框架创建一个小工具来辅助这些操作。 首先,让我们理解二进制和十六进制的基本概念。二...
Lua 小程序十六进制字符串和二进制数据间的转换 本篇文章将介绍 Lua 小程序在十六进制字符串和二进制数据之间的转换。Lua 是一种轻量级、高效、灵活的脚本语言,广泛应用于游戏、软件开发等领域。在数据处理过程中...
在LabVIEW编程环境中,二进制字符串转换为十进制数值是常见的操作,尤其是在处理数据或进行计算时。本文将详细讲解如何利用LabVIEW实现这一转换,并探讨相关知识点。 首先,我们要理解二进制和十进制之间的基本概念...
在Linux环境下,将整型(int)数值转换为二进制字符串是一项常见的编程任务,尤其是在进行低级别编程或者处理位操作时。由于C++标准库中并没有直接提供将整数转换为二进制字符串的函数,程序员往往需要自定义函数来...
labview2015版本,将二进制的字符串转换成十进制数值,
十六进制字符串是将二进制数据转换成16个符号(0-9,A-F)组成的字符串,这种表示方式在计算机科学中广泛应用,比如内存地址、颜色代码、网络协议等。LabVIEW,全称Laboratory Virtual Instrument Engineering ...
在VB.NET编程中,处理数据时经常会遇到将字符串与二进制数据进行转换的情况。这是因为字符串是人类可读的数据表示形式,而二进制数据则更适用于存储和传输。了解如何在两者之间进行转换是至关重要的,特别是当你需要...
十六进制是一种逢16进1的方式,用于表示二进制数,它使用0-9和A-F这16个符号。 一、字符串转十六进制串 要将字符串转换为十六进制串,我们需要对字符串中的每个字符进行编码,然后将编码结果转换成十六进制字符串...
又如在处理二进制文件时,我们需要先将文件内容读取为十六进制字符串,然后再进行分析或处理。 总结来说,易语言十六进制与字符串转换涉及了基础的数据类型转换、线程编程以及源码学习。理解并掌握这些知识点,对于...
在MATLAB中,二进制字符串到十进制值的转换是常见的操作,尤其是在处理数字信号处理、数据编码或通信领域。本知识点将详细介绍如何在MATLAB中进行这种转换,并结合提供的`Bin2Dec.m`脚本来理解其实现。 首先,我们...
标题提到的"ASCII转换至十六进制字符串与二进制字符串显示"是指将ASCII编码的字符转换为对应的十六进制和二进制表示形式,并在LabVIEW界面上进行展示。下面我们将深入探讨这个主题。 首先,ASCII(美国标准信息交换...
本资源是ruby代码,提供了一系列封装好的函数,用于快速进行转换,一个函数搞定,包括如下转换,二进制字符串与hex字符串的互转。二进制字符串与整数互转,包括uint8,uin16,uint32, 以及本地字节序和网络字节序两种...
16进制数值向2进制字符串转化的小程序,亲测有效,内部附有解释说明
在图像处理中,图片通常以二进制数据的形式存储,这些二进制数据可以通过16进制字符串来展示和解析。 "16进制字符串显示图片工具" 是一个专门用来将16进制字符串转换为可视图像的应用程序。这个工具基于C#(简称CS...
十六进制是一种逢16进1的进位制,通常用于表示二进制数据,而字符串则是一系列字符的集合。理解这两种类型之间的转换对于理解和处理底层数据至关重要。 在C语言中,十六进制和字符串的转换主要涉及到以下函数: 1....
在IT行业中,尤其是在进行底层通信或者数据处理时,16进制与字符串的相互转换是一项基本技能。在Delphi编程环境中,这样的转换操作是至关重要的,特别是在涉及到RS232和RS485串口通信以及SOCKET网络通讯时。这是因为...
在计算机科学中,二进制数据和字符串是两种基本的数据表示形式。二进制数据,以0和1的形式存在,是计算机内部处理和存储所有信息的基础。字符串则是一系列字符的集合,通常用于人类可读的数据表示。在编程中,有时...
在C++编程中,将二进制字符串转换为十进制数是一项常见的任务,尤其是在处理计算机数据表示或者进行位操作时。在这个问题中,我们主要关注如何在Visual C++环境下实现这一转换。以下是一个详细的过程解释及代码示例...
- **文件处理**:读取或写入二进制文件时,16进制字符串可以作为中间格式,方便调试和展示。 5. **注意事项** - 转换过程中需确保输入的16进制字符串是有效的,即只包含合法的16进制字符。 - 对于手动转换,要...