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 ...
随机推荐
- smokeping 微信报警配置
1. 准备alert脚本,用来调用微信脚本 #!/bin/bash alertname=$ target=$ losspattern=$ rtt=$ smokename="hq_to_idc ...
- BZOJ 3043 IncDec Sequence:反向差分
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3043 题意: 给定一个长度为n的数列a[i],每次可以选择一个区间[l,r],使这个区间内 ...
- 疑难杂症:“代理 XP”组件已作为此服务器安全配置的一部分被关闭。系统管理员可以使用 sp_configure 来启用“代理 XP”。
“代理 XP”组件已作为此服务器安全配置的一部分被关闭.系统管理员可以使用 sp_configure 来启用“代理 XP”.有关启用“代理 XP”的详细信息,请参阅 SQL Server 联机丛书中的 ...
- hdu-5805 NanoApe Loves Sequence(线段树+概率期望)
题目链接: NanoApe Loves Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/131072 ...
- Gym-101673: A Abstract Art (模板,求多个多边形的面积并)
手抄码板大法. #include<bits/stdc++.h> using namespace std; #define mp make_pair typedef long long ll ...
- T(n) = 25T(n/5)+n^2的时间复杂度
对于T(n) = a*T(n/b)+c*n^k;T(1) = c 这样的递归关系,有这样的结论: if (a > b^k) T(n) = O(n^(logb(a)));logb(a)b为底a ...
- 2012年浙大:Head of a Gang
题目描述: One way that the police finds the head of a gang is to check people's phone calls. If there is ...
- selectedIndex 属性可设置或返回下拉列表中被选选项的索引号。
转自:https://blog.csdn.net/xxj19950917/article/details/73002046
- 在浏览器端用JS创建和下载文件
前端很多项目中,都有文件下载的需求,特别是JS生成文件内容,然后让浏览器执行下载操作(例如在线图片编辑.在线代码编辑.iPresst等). 但受限于浏览器,很多情况下我们都只能给出个链接,让用户点击打 ...
- 04_数据库升级onUpgrade&ondowngrade
如果想操作多个数据库就不要把数据库的名字写死了 public MyOpenHelper(Context context, String name){ //第一个参数上下文 //第二个参数 数据库的名字 ...