`

字符串-字符-二进制关系

 
阅读更多

 

用一个实例来说明汉字如何转换为对应的字节。

中文编码是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中关于十进制、二进制、十六进制以及字符串之间的转换方法,旨在为程序员提供实用且精炼的代码示例。 ### 十进制转其他进制 #### 十进制转二进制 在Delphi中,将一个整数转换成二进制字符串...

    C语言二进制字符串与十六进制字符串相互转化

    本文将深入探讨如何在C语言环境中实现二进制字符串与十六进制字符串之间的转换,并结合MFC(Microsoft Foundation Classes)框架创建一个小工具来辅助这些操作。 首先,让我们理解二进制和十六进制的基本概念。二...

    Lua小程序十六进制字符串和二进制数据间的转换[借鉴].pdf

    Lua 小程序十六进制字符串和二进制数据间的转换 本篇文章将介绍 Lua 小程序在十六进制字符串和二进制数据之间的转换。Lua 是一种轻量级、高效、灵活的脚本语言,广泛应用于游戏、软件开发等领域。在数据处理过程中...

    1.二进制字符串转十进制数值_labview_二进制转十进制_

    在LabVIEW编程环境中,二进制字符串转换为十进制数值是常见的操作,尤其是在处理数据或进行计算时。本文将详细讲解如何利用LabVIEW实现这一转换,并探讨相关知识点。 首先,我们要理解二进制和十进制之间的基本概念...

    linux下int转二进制字符串的方法_int转二进制字符串的方法_QT_linux_

    在Linux环境下,将整型(int)数值转换为二进制字符串是一项常见的编程任务,尤其是在进行低级别编程或者处理位操作时。由于C++标准库中并没有直接提供将整数转换为二进制字符串的函数,程序员往往需要自定义函数来...

    labview二进制字符串转十进制

    labview2015版本,将二进制的字符串转换成十进制数值,

    十六进制字符串至普通转化_十六进制字符串转普通字符串_labview十六进制_

    十六进制字符串是将二进制数据转换成16个符号(0-9,A-F)组成的字符串,这种表示方式在计算机科学中广泛应用,比如内存地址、颜色代码、网络协议等。LabVIEW,全称Laboratory Virtual Instrument Engineering ...

    VB.NET 字符串与二进制间的转换

    在VB.NET编程中,处理数据时经常会遇到将字符串与二进制数据进行转换的情况。这是因为字符串是人类可读的数据表示形式,而二进制数据则更适用于存储和传输。了解如何在两者之间进行转换是至关重要的,特别是当你需要...

    易语言十六进制与字符串转换

    又如在处理二进制文件时,我们需要先将文件内容读取为十六进制字符串,然后再进行分析或处理。 总结来说,易语言十六进制与字符串转换涉及了基础的数据类型转换、线程编程以及源码学习。理解并掌握这些知识点,对于...

    matlab开发-将二进制字符串转换为十进制值

    在MATLAB中,二进制字符串到十进制值的转换是常见的操作,尤其是在处理数字信号处理、数据编码或通信领域。本知识点将详细介绍如何在MATLAB中进行这种转换,并结合提供的`Bin2Dec.m`脚本来理解其实现。 首先,我们...

    C# 字符串转十六进制串,16进制反向转回原字符串

    十六进制是一种逢16进1的方式,用于表示二进制数,它使用0-9和A-F这16个符号。 一、字符串转十六进制串 要将字符串转换为十六进制串,我们需要对字符串中的每个字符进行编码,然后将编码结果转换成十六进制字符串...

    ASCII转换至十六进制字符串与二进制字符串显示_labview_字符串转换_

    标题提到的"ASCII转换至十六进制字符串与二进制字符串显示"是指将ASCII编码的字符转换为对应的十六进制和二进制表示形式,并在LabVIEW界面上进行展示。下面我们将深入探讨这个主题。 首先,ASCII(美国标准信息交换...

    ruby的二进制字符串与hex互转,二进制字符串与整数互转的工具函数

    本资源是ruby代码,提供了一系列封装好的函数,用于快速进行转换,一个函数搞定,包括如下转换,二进制字符串与hex字符串的互转。二进制字符串与整数互转,包括uint8,uin16,uint32, 以及本地字节序和网络字节序两种...

    labview16进制数值向2进制字符串转化

    16进制数值向2进制字符串转化的小程序,亲测有效,内部附有解释说明

    16进制字符串显示图片工具

    在图像处理中,图片通常以二进制数据的形式存储,这些二进制数据可以通过16进制字符串来展示和解析。 "16进制字符串显示图片工具" 是一个专门用来将16进制字符串转换为可视图像的应用程序。这个工具基于C#(简称CS...

    十六进制与字符串转换

    十六进制是一种逢16进1的进位制,通常用于表示二进制数据,而字符串则是一系列字符的集合。理解这两种类型之间的转换对于理解和处理底层数据至关重要。 在C语言中,十六进制和字符串的转换主要涉及到以下函数: 1....

    Delphi字符串16进制互相转换

    在IT行业中,尤其是在进行底层通信或者数据处理时,16进制与字符串的相互转换是一项基本技能。在Delphi编程环境中,这样的转换操作是至关重要的,特别是在涉及到RS232和RS485串口通信以及SOCKET网络通讯时。这是因为...

    二进制与字符串之间的转换类CBinary

    在计算机科学中,二进制数据和字符串是两种基本的数据表示形式。二进制数据,以0和1的形式存在,是计算机内部处理和存储所有信息的基础。字符串则是一系列字符的集合,通常用于人类可读的数据表示。在编程中,有时...

    c++将二进制字符串转换成十进制数

    在C++编程中,将二进制字符串转换为十进制数是一项常见的任务,尤其是在处理计算机数据表示或者进行位操作时。在这个问题中,我们主要关注如何在Visual C++环境下实现这一转换。以下是一个详细的过程解释及代码示例...

    Go-此工具用于将16进制字符串转换成10进制byte数组

    - **文件处理**:读取或写入二进制文件时,16进制字符串可以作为中间格式,方便调试和展示。 5. **注意事项** - 转换过程中需确保输入的16进制字符串是有效的,即只包含合法的16进制字符。 - 对于手动转换,要...

Global site tag (gtag.js) - Google Analytics