Java基础笔记(六)——进制表示、ASCII码和Unicode编码
Java中有三种表示整数的方法:十进制、八进制、十六进制。
八进制:以0开头,包括0~7的数字。如:int octal=020; //定义int型变量存放八进制数据
十六进制:以0x或0X开头,包括0~9的数字及字母a~f,A~F。如:long hex=0xf932d763fae4325L; //定义长整型变量存放十六进制数据
不同的编码方式按照它们的规定方法将支持的字符集转换为计算机硬件进行能操作的二进制形式,其中包括了一些格式转换过程。
ASCII(American Standard Code for Information Interchange美国标准信息交换代码),基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其它西欧语言。不支持包括中文在内的所有语言。数字的ASCII码<大写字母的ASCII码<小写字母的ASCII码。
1.使用7位或8位二进制数组合来表示128或256种可能的字符。(如:A对应的ASCII码二进制:01000001,十进制是65。)7位表示成8位,在最高位填0就行。
2.标准ASCII码使用7位二进制来表示所有的大写字母和小写字母,数字0~9,标点符号,以及在美式英语中使用的控制字符。
3.后128个称为扩展ASCII码,用于表示特殊符号、外来语字母和图形符号。
所以说,ASCII码支持一个字符占一个字节(8bit)。
像char类型在进行运算时输出的结果,是把字符转换为对应的ASCII码,我们通常看到的结果是ASCII的二进制转换为十进制的数字,当然,这些字符也可以对应八进制或十六进制。
ASCII算上扩展的,共256种1和0的组合来表示256个字符,不包括中文。中国制定了GB2312编码,把中文编进去,包括汉字、其它字母以及图形符号等,GBK字符集是GB2312的扩展,主语扩展了繁体中文字的支持。类似地,日文和韩文等其它语言也有这个问题。不同的国家会制定支持各自语言的编码方式,为了统一所有文字的编码,Unicode应运而生。扩充这么多字符,一个字节(8bit)肯定是不够了,Unicode、GB2312和GBK编码都是用两个字节表示一个字符,之前的英文编码从单字节变成双字节,只需要把高字节全部填0就行,也就是用16种1和0的组合(256 x 256 = 65536 个符号),前面的已编好的字符前8位都填0即可。
Unicode编码又称为统一码或万国码,是计算机科学领域的一项业界标准,目标是支持世界上所有的字符集,即世界上的各种语言字符都有对应的Unicode编码,这样就不会有乱码问题。英文每个字符占用一个字节,中文每个字符占用两个字节。
Unicode表示法:在值前加 \u来表示Unicode编码,后面跟四位十六进制数。即范围从\u0000~\uffff
如:char c='\u005d'; //char型是用单引号括,这里表示的是Unicode编码,代表一个字符']'
UTF-8(8-bit Unicode Transformation Format)是Unicode的其中一个使用方式,用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。UTF-8使用可变长度字节来储存 Unicode字符,它可以使用 1 - 4 个字节表示一个字符,根据字符的不同变换长度,这样可以减少所需的存储空间,提高存储效率。utf-8编码一个中文字符占三个字节。
char类型占2个字节,16位可以存放一个汉字。
Java基础笔记(六)——进制表示、ASCII码和Unicode编码的更多相关文章
- 利用浏览器做好数字进制和ASCII码及Unicode教与学
浏览器是现在个人计算机的标配,一般来说一个PC至少安装一种以上的浏览器.主流网页浏览器有Google Chrome.Internet Explorer.Microsoft Edge.Mozilla F ...
- Java基础笔记(3) 进制与进制转换
---恢复内容开始--- 进制 在一般生活中,我们一直在应用的十进制,就是逢十进一,而今天我们要接触的是,计算机编程常用的进制!首先我们要知道,计算机内部运算采用的是二进制,也就是逢二进制! 1.什么 ...
- C语言 16进制与ascii码互转
/*把ASCII字符转换为16进制 */ uint8_t char_to_hex(const uint8_t *ch) { uint8_t value = 0; if(*ch >= 0 & ...
- java基础语法以及进制的转换
关键字 关键字: 被Java语言赋予特定含义的单词 关键字特点 组成关键字的字母全部小写 关键字注意事项 goto和const作为保留字存在,目前并不使用 类似IDEA这样的集成工具,针对关键字有特殊 ...
- 进制与ASCII码转换
LabeledEdit4.Text := chr(); // 用十进制方式赋值: ASCII码转换为字符 65 -> A LabeledEdit4.Text := #; // 用十进制方式赋值: ...
- Java编程基础——运算符和进制
Java编程基础——运算符和进制 摘要:本文主要介绍运算符和进制的基本知识. 说明 分类 Java语言支持如下运算符: ◆ 算术运算符:++,--,+,-,*,/,%. ◆ 赋值运算符:=,+=,-= ...
- JAVA 16进制转ASCII -- 2018年5月25日 周五
/** * 16进制转ASCII * * @param hex * @return */ public static String hex2Str(String hex) { StringBuilde ...
- Java字符串转16 进制工具类Hex.java
Java字符串转16 进制工具类Hex.java 学习了:https://blog.csdn.net/jia635/article/details/56678086 package com.strin ...
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 | 被围观 25,969 views+ 1.Anno ...
随机推荐
- Android中m、mm、mmm、mma、mmma的区别
m:编译整个安卓系统 makes from the top of the tree mm:编译当前目录下的模块,当前目录下需要有Android.mk这个makefile文件,否则就往上找最近的Andr ...
- 1.1 BASIC PROGRAMMING MODEL(算法 Algorithms 第4版)
1.1.1 private static void exercise111() { StdOut.println("1.1.1:"); StdOut.println((0+15)/ ...
- Contiki 源码风格
/** * \defgroup coding-style Coding style * * This is how a Doxygen module is documented - start wit ...
- jumpserver v3.0
文档地址 www.php230.com/weixin1451347094.html
- cmake编译后vs编译(build Solution)报错的解决办法
很久没有写blog了,最近在kdevelop上开发程序的时候,需要在主函数的文件中引用别的文件的函数,添加了对该函数所在的头文件之后仍然出现该函数没有定义的错误.经历了一番波折之后,才发现是忘记了在c ...
- java 创建 HMAC 签名
ava 创建 HMAC 签名 psd素材 1. []ComputopTest.java package com.javaonly.hmac.test; import java.io.IOExcepti ...
- Android6.0 旋转屏幕(五)WMS启动应用流程(屏幕方向相关)
一.强制设置方向 1.Activity 如果要强制设置一个Activity的横竖屏可以通过Manifest去设置,跟Activity相关的信息都会保存在ActivityInfo当中. android: ...
- 实现远程连接MySQL
首先登录远程服务器,然后登录mysql:mysql -u用户 -p密码; 创建允许远程登录的用户并赋权:grant all privileges on 数据库.表名 to 用户名@'IP地址' ide ...
- [原创]java导出excel
一.需求背景 在项目开发中,经常会遇到导出Excel报表文件的情况,因为很多情况下,我们需要打印Excel报表,虽然在网页上也可以生成报表,但是打印网上里的报表是无法处理排版问题的,所以最好的方式,还 ...
- [原创]java向word模板中填充数据(总结)
使用过PageOffice动态生成word文档的人都知道,PageOffice可以给word文档的指定位置进行填充,这里我们所说的指定位置在PageOffice的专业术语里面有两个概念,一个叫做数据区 ...