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 ...
随机推荐
- BZOJ 4435 [Cerc2015]Juice Junctions 分治最小割+hash
分治最小割的题目,要求n2. 之前用的n3的方法自然不能用了. 于是用hash,设hash[i][j]表示在最小割为i的时候,j是否与S联通. 看懂这个需要理解一下最小割树的构造. 这种题建议用EK写 ...
- 【栈】日志分析(BSOJ2981)
Description M海运公司最近要对旗下仓库的货物进出情况进行统计.目前他们所拥有的唯一记录就是一个记录集装箱进出情况的日志.该日志记录了两类操作:第一类操作为集装箱入库操作,以及该次入库的集装 ...
- 20145239 Linux下常用的ls命令总结
20145239 Linux下常用的ls命令总结 通过学习本周的教学视频和要求掌握的内容,发现ls命令被使用的次数非常多,但作为一个初学者,可能我只会ls或者顶多ls -l两种用法.但其实ls是一个非 ...
- 在EditText插入表情,并发送表情
在EditText插入表情,点击发送按钮,将qq表情显示在TextView中: [mw_shl_code=java,true]public class EditTextActivity extends ...
- EOF的使用
1.我疑惑了 char a[20]; while(scanf("%s",a)!=EOF){ cout<<"hello"<<endl; } ...
- java异常的原理以及应用
父类Throwable 两个分支: error:合理的应用程序不应该出现的严重问题,可以无需声明便抛出,比如内存溢出. Exception:程序还能够克服和恢复的问题. 其中又分为系统异常和普通异常. ...
- Java的访问权限修饰符
default或者friendly表示默认的访问权限修饰符.
- BZOJ_2064_分裂_状压DP
BZOJ_2064_分裂_状压DP Description 背景: 和久必分,分久必和... 题目描述: 中国历史上上分分和和次数非常多..通读中国历史的WJMZBMR表示毫无压力. 同时经常搞OI的 ...
- 【Lintcode】046.Majority Number
题目: Given an array of integers, the majority number is the number that occurs more than half of the ...
- 怎么看时序图--nand flash的读操作详解
出处:http://blog.chinaunix.net/uid-28852942-id-3992727.html 这篇文章不是介绍 nand flash的物理结构和关于nand flash的一些基本 ...