1补充知识点:

重要概念

一个整数a=14,那么

a对应的二进制数值b=01110。

a对应的原码c=01110.

注意b和c虽然都是1110,但是两个是不同的,b是a对应的二进制数值,c是b这个数据值在计算机为了表示这个值所进行的编码。b的最高位可以省略 c的最高位确是符号位不能省略。

1.1 数据与文字的编码

根据计算机中信息的编码表示方式,将数据分为“定点数据”、“浮点数据”、“图形数据”和“文字数据”

“定点数”是指小数点位置固定不变的数。如整数 2700和纯小数0.123。

“浮点数”是指小数点位置变化的数 如浮点数 123.567。

通过两个例子就看出了“定点数”和“浮点数”的差别了。

“定点数”和“浮点数”统称为”数值编码

点定数在计算机中可以使用原码、补码、反码来表示。

在java语言中,你就认为 byte、short、char、long是补码表示的。

补码 表示法也是用最高一位代表符号,其余各位代码表示数值。

对于一个整数x,补码的编码方式为:

正数的补码与源码相同,

负数的补码将x的二进制位按位取反后再最低位加1.

如 正整数x=1010 则 x的原码=01010;x的补码=01010

如 负整数y=-1010 则y的原码=11010;y的补码=10110

对于一个纯小数x=0.1010 y=-0.1010  (这个可以忽略)

x的原码 = 0.1010 x的补码=0.1010

y的原码 = 1.1010 y的补码 =1.0110

求一个负数的补码的另一个方法: 从最低位开始,对遇到的0和第一个1取其原码,从第一个1之后开始直到最高位均按位取反。

补码的特点:

1.负数比正数多一个,零有唯一的编码,即0000....0。

怎么理解这句话呢?

举例用一个四位二进制数表示一个数,其中最高位是符号位。

正数的范围为0 001 ---到0 111 对应十进制数为 1到7

负数的范围为1 000 ---到1 111 对应十进制数为 -8到-1

就多出来这个1000(对应的-8 这是根据补码的数值计算公式得出的)

一个n+1为负整数的补码,其数值计算公式为

本例的n+1位为4,然后n也就3,所以:

1 000对应十进制值 = - 1*(2*2*2)+0*(2*2)+0*(2)+0 = -8

零 就是 0000  (也是使用补码表示数值的原因之一 用补码表示数 0 值唯一  用原码表示数的时候 0 值有两个+0和-0)

2.将一个数的补码按位取反,在最低位上加1后就得到它的相反数的补码。经常用这个特点求一个负数的补码

如 正6(补码是0110)的相反数是 -6(1010)

这个特性非常重要,

应用于

(1)求一个负数的补码时,先求这个数相反数(也就是一个整数)的补码,通过这个特性求出这个负数的补码。

如 a=-6 求a的补码。

1. a的相反数为 6

2. 6的补码是 0110

3. 根据这个特性求得a的补码为1010

(2)求一个负数补码对应的十进制值时,使用上述公式比较麻烦,而使用这个特性就简单多了。

如 求补码1010对应的十进制值。

1.1010的最高位是1 所以知道此数为负数。

2.根据这个特性求出对应的相反数(正数)为0110.

3.这个正数0110对应的十进制值为6.

4.将负号加到6上,就得到了-6。

下面是了解:

浮点数通过尾数和阶码的概念来表示。

怎么理解呢?例子如下

12.8这个浮点数可以通过科学记数法来表示 即 0.128*102

128对应的二进制原码是0100000000

2对应的二进制数是10

那么 在计算机中怎么表示这个数呢?

”10“放入尾数,0100000000放入阶码,将0放入符号

这样0 0100000000 10 这一串就表示12.8这个浮点数

也就是 将12.8 编码为0 0100000000 10

文字编码(也就是java的字符编码或字符串编码)

1.西文字符的编码:

ASCII码:用8个二进制位表示,最高位是0,余下7位可以给出128个编码,表示128个不同的字符

其中95个对应英文字母、数字等可显示和可打印的字符。另外33个字符的编码值为0-31127

表示一些不可显示的控制字符。

33个控制字符如下:

0 NUL(null) 空字符、 1 SOH(start of headline) 标题开始 2 STX (start of text) 正文开始、  3 ETX(end of text) 正文结束、 4 EOT (end of transmission) 传输结束 5 ENQ (enquiry) 请求、6 ACK (acknowledge) 收到通知 7 BEL (bell) 响铃 8 BS (backspace) 退格、9 HT (horizontal tab) 水平制表符 10 LF (NL line feed, new line) 换行键 11 VT (vertical tab) 垂直制表符、12 FF (NP form feed, new page) 换页键 13 CR (carriage return) 回车键 14 SO (shift out) 不用切换、15 SI (shift in) 启用切换 16 DLE (data link escape) 数据链路转义 17 DC1 (device control 1) 设备控制118 DC2 (device control 2) 设备控制2 19 DC3 (device control 3) 设备控制3 20 DC4 (device control 4) 设备控制421 NAK (negative acknowledge) 拒绝接收 22 SYN (synchronous idle) 同步空闲 23 ETB (end of trans. block) 传输块结束、24 CAN (cancel) 取消 25 EM (end of medium) 介质中断 26 SUB (substitute) 替补、27 ESC (escape) 换码(溢出) 28 FS (file separator) 文件分割符 29 GS (group separator) 分组符、30 RS (record separator) 记录分离符、 31 US (unit separator) 单元分隔符 32 space 空格、127 DELdelete 删除)

计算机的键盘能将用户单击的按钮用ascii编码的形式传送给主机。

2.汉字的编码:

汉字编码=输入用的编码+机内存储的编码。

输入码分为:数字编码、拼音码、字形码(如五笔)

怎么理解呢?如拿拼音码举例,对于”shang“这个拼音它对应

其中”shang“这个拼音就需要编码。

机内码:

GB2312规定了3755个最常用汉字和3008个较常用汉字。

图中重点:

1 十六进制81对应的二进制是1000 0001 ASCII码首码为0

2 ”GB18030采用单字节、双字节、四字节的三种方式编码,全面兼容了ASCII码和GB2312“

的意思是:在GB18030编码库中,十六进制的00---7F这个单字节码就是对应了ASCII码。

3 最后一句计算机中的汉字编码都是软件定义和处理的

3.十进制数的编码:

1.2 定点数的加减运算

在数据运算中,参与运算的数据又成为”操作数(operand)“。

1 定点的数的补码加法公式:

[x]补 + [y]补 = [x+y]补  就是两个数的补码相加,其结果就是这个两个数相加后的补码。

如x = 13,y=8 ,x+y=21,

则[x]补=0 01101  ,   [y]补=0 01000  [x+y]补=0 10101

定点的数的补码减法公式:

[x]补 - [y]补 = [x-y]补 = [x]补 + [-y]补

2.溢出的检测方法:

上述补码加减运算成立的前提是运算结果”不溢出“。

对于加法,只在正数加正数和负数加负数这两种情况下才会溢出。符号位不同的两个数相加不会产生溢出。

对于减法,只在正数减负数和负数减正数这两种情况下才会溢出。符号位相同的两个数相减不会产生溢出。

java复习2(编码)相关推荐

  1. Java复习打卡day30

    Java复习打卡day30 前置 前置导学 HTML语言 HTML介绍 HTML语言的基础语法 常见标签 文本标签 格式化标签 图像标签 超链接标签 表格标签 表单标签 前置 前面我们主要讲述了Jav ...

  2. Java复习打卡day47

    Java复习打卡day47 Mac系统中安装mysql数据库 MySql基础操作 Mysql中的数据类型 Mysql中的字段约束和运算符 Mysql数据库中的表引擎和字符集utf8 Mysql中的DM ...

  3. 中国海洋大学-信息系统开发(Java)复习

    Java复习 OUC_Shizue 1 Java编译器和执行器 Java编译器和执行器是Java语言的两个核心组件,分别用于将Java源代码编译成Java字节码文件和运行Java字节码文件. Java ...

  4. Java复习面试知识点

    Java复习面试知识点 前言: 简要的记录一下学习到的东西,仅供自己查阅和复习方便.希望该文章能对你有帮助,文章学习自博客和b站UP主的教程 集合: 集合简介: Java标准库自带的java.util ...

  5. 【错误记录】生成 Java 文档错误 ( Xxx.java:xx: 错误: 编码GBK的不可映射字符 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 使用 javadoc 命令 , 生成 Java 文档 , 报错 ; javadoc Student.java D:\develop\javadoc& ...

  6. Java Web安全编码

    JAVA Web安全编码规范要求 Java Web安全编码 输入输出数据验证 身份认证和访问控制 文件和资源管理 会话管理 错误和异常信息处理 数据加密 代码质量 序列化 本文转载,如有冒犯请联系本人 ...

  7. 如何理解java采用Unicode编码

    http://blog.csdn.net/gjb724332682/article/details/43229563 Java中字符仅以一种形式存在,那就是Unicode.由于java采用unicod ...

  8. java改变变量编码方式_Java 10将如何改变您的编码方式

    java改变变量编码方式 突出显示Java 10中新的Java局部变量类型推断功能 早在2016年,Java社区就掀起了新的JDK增强提案(JEP): JEP 286 . 现在,两年后,局部变量类型推 ...

  9. java改变变量编码方式_Java 8中的5个功能将改变您的编码方式

    java改变变量编码方式 Java 8在JVM和语言级别都包含了一些非常令人兴奋的功能. 尽管最初为该发行版设想的某些功能已扩展到第9版,或已推出第9版,但实际上有数十个新功能. 许多新添加的内容在编 ...

最新文章

  1. 互联网产品初期需求确定与数据库模型设计——基于Visio和Xmind
  2. Java泛型教程–示例类,接口,方法,通配符等
  3. java索引ref_java – 如何使用jgit库将git HEAD指向特定的ref?
  4. nginx做负载均衡,解决多机器多gpu卡服务对外暴露一个接口问题
  5. 英语数字听力学习软件操作
  6. faile什么意思_failed是什么意思,failed the test是什么意思
  7. php升序排列,php 基础问题表单里面怎么升序和降序?
  8. 嵌入式培训怎么学?嵌入式开发培训学什么内容
  9. python注释语句会不会被解释器过滤掉_Python注释
  10. Clojure学习笔记(一)——介绍、安装和语法
  11. 找一找马里奥-第14届蓝桥杯STEMA测评Scratch真题精选
  12. 达梦数据库恢复到指定时间点
  13. 制造企业如何从0到1进行信息化建设?
  14. 【调剂】华东交通大学软件学院2020年硕士研究生招生调剂信息
  15. C/C++ 相关低耦合代码的设计
  16. Android AlertDialog之七十二变
  17. 关于保险丝的慢断和快断的差别和区分?
  18. Unity Shader unity文档学习笔记(十七):径向模糊 实现类似冲锋时的速度感
  19. 福布斯区块链50强榜单发布,6家中国机构上榜
  20. CAD图中如何插入Excel表格?

热门文章

  1. SAP UI5 确保控件 id 全局唯一的实现方法
  2. SAP Spartacus里使用defer的一个例子
  3. SAP Shipping address页面点了continue后的网络请求
  4. Hybris DDIC type and its counterpart model class
  5. OPA 22 - sinor fake xml http request
  6. SAP Fiori application do filtering will real delete note in DB
  7. SAP OData Total = 80是这样计算出来的
  8. 如何使用async和await这对组合设计统一的取Access Token的函数
  9. 读取一个product全部数据的工具
  10. SAP CRM WebClient UI BSP server event