1.原码、补码、反码的定义和表示方法。

数在计算机中是以二进制形式表示的。 数分为有符号数和无符号数。 原码、反码、补码都是有符号定点数的表示方法。 一个有符号定点数的最高位为符号位,0是正,1是副

原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值.,原码就是这个数本身的二进制形式。 原码是人脑最容易理解和计算的表示方式。

例如:如果是8位二进制:

[+1]原 = 0000 0001      二进制的首位是0,表示+,其余位数表示值;

[-1]原 = 1000 0001       二进制的首位是1,表示-,其余位数表示值;

反码:正数的反码是其本身负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.如果一个反码表示的是负数,人脑无法直观的看出来它的数值.,通常要将其转换成原码再计算。

例如:

[+1] = [00000001]原 = [00000001]反             正数的反码是其本身

[-1] = [10000001]原 = [11111110]反              负数反码,符号位不变,其余各个位取反。

补码:正数的补码就是其本身负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)

例如:

[+1] = [00000001]原 = [00000001]反 = [00000001]补       正数的补码就是其本身

[-1] = [10000001]原 = [11111110]反 = [11111111]补         负数的补码在其反码的基础上加一

2.

动手动脑1,检验EnumTest.java

package text;

public class EnumTest {

	public static void main(String[] args) {
Size s=Size.SMALL;
Size t=Size.LARGE;
//s和t引用同一个对象?
System.out.println(s==t); //
//是原始数据类型吗?
System.out.println(s.getClass().isPrimitive());
//从字符串中转换
Size u=Size.valueOf("SMALL");
System.out.println(s==u); //true
//列出它的所有值
for(Size value:Size.values()){
System.out.println(value);
}
} }
enum Size{SMALL,MEDIUM,LARGE};

  

enum   Size 定义了一个Size枚举类型,并定义了三个变量SMALL,MEDIUM,LARGE,从运行结果可以看出,第一个输出false,证明s和t引用了不同对象,用了Size中的不同变量,第二个输出false,说明了枚举类型不是原始数据类型,第三个输出true,说明了将“SMALL”从字符串转化为枚举,且同s相等。最后输出枚举类型中的所有变量。在枚举类型中”==“的用法和equals()相同。

2      动手动脑2 TestDouble.java

package text;
public class TestDouble { public static void main(String args[]) {
System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
System.out.println("4.015 * 100 = " + (4.015 * 100));
System.out.println("123.3 / 100 = " + (123.3 / 100));
}
}

  

double类型的计算结果是不精确的。其原因是因为double类型数字在转换为二进制的时候,有些数字不能完全转换,只能无限接近于原本的值,这就导致了在后来的运算会出现不正确结果的情况。

解决精度问题可以使用使用BigDecimal类,但在构建BigDecimal对象时应使用字符串而不是double数值。

3动手动脑3

public static void main(String[] args){
int X=100;
int Y=200;
System.out.println("X+Y="+X+Y);
System.out.println(X+Y+"=X+Y"); }

  

从运行结果可以看出,有双引号的是字符串,直接输出,Java中输出用+号相连。

Java课后总结-原码、补码、反码的更多相关文章

  1. (7)java基础知识-原码、反码、补码、运算符

    一.原码.反码.补码 原码 一个数转化成二进制. 用最高位来表示正负,最高位为0表示正数,最高位为1表示负数. 例如: short i=5: 因为在java里short占2个字节转化成二进制就是 00 ...

  2. C正数负数的原码补码反码以及内存地址分析

    #include<stdio.h> void swap(int a, int b); void main1(){ int i = 10; //正数的原码 00000000 00000000 ...

  3. java 变量及数据类型、原码、反码、补码

    Java基础——变量及数据类型 变量的概念 内存中的一个存储区域 变量名+数据类型 可在同一类型范围内不断变化 为什么定义变量: 用于不断的存放同一类型的常量,并可以重复使用 使用变量注意: 变量的作 ...

  4. Java:二进制(原码、反码、补码)与位运算

    一.二进制(原码.反码.补码) 二进制的最高位是符号位(“0”代表正数,“1”代表负数): Java中没有无符号数: 计算机以整数的补码进行运算: 1.  原码:将一个整数转换成二进制表示 以 int ...

  5. Java 数字用二进制表示,以及原码,反码,补码、负数的二进制表示

    首先我们要对原码.反码和补码有个了解: 1.所谓原码就是二进制定点表示法,即最高位为符号位,"0"表示正,"1"表示负,其余位表示数值的大小. 2.反码表示法规 ...

  6. Java位运算符、位移运算符;原码、反码、补码

    文章背景:雪花算法 id 生成长度问题. Java位运算符 - 异或运算符(^)<p>运算规则:两个数转为二进制,然后从高位开始比较,如果相同则为0,不相同则为1.</p> - ...

  7. 二进制原码、反码、补码以及Java中的<< 和 >> 和 >>> 详细分析

    1.计算机二进制系统中最小单位bit 在计算机二进制系统中: bit (位) :数据存储的最小单元. 简记为b,也称为比特(bit),每个二进制数字0或1就是一个位(bit),其中,每 8bit = ...

  8. java原码、反码、补码、位运算

    1.对于有符号的数(java中的数都是有符号的) 二进制的最高位是符号位:0表示正数,1表示负数 正数的原码,反码,补码都一样 负数的反码=它的原码符号位不变,其它位取反 负数的补码=它的反码+1 0 ...

  9. 原码,反码与补码的概念以及Java中数的存储方式

    *原码,反码,补码必须满8位,不足在前填0: 1,原码:用符号位和数值位表示一个带符号的数 +  -> 0                 -   -> 1     表示数的范围-127~ ...

随机推荐

  1. HTML5与HTML4的区别-----通用的排版结构

    一个网页通常分为:头部,主体内容和脚部三个部分,当然也有其他更细的划分方法. 以移动端为例, 当给一个设计图,我通常使用一下结构: <div  class="container&quo ...

  2. 【TensorFlow】TensorFlow获取Variable值,将Variable保存为list数据

    Variable类型对象不能直接输出,因为当前对象只是一个定义. 获取Variable中的浮点数需要从数据流图获取: initial = tf.truncated_normal([3,3], stdd ...

  3. Python 元类 - Metaclasses

    Python 元类 - Metaclasses 默认情况下儿, classes 是有 type() 构造的. 类的结构体在一个新的 namespace 被执行, 类的名字 class name 绑定( ...

  4. Python3(七) 正则表达式与JSON

    一. 初识正则表达式 1.定义:是一个特殊的字符序列,可以帮助检测一个字符串是否与我们所设定的字符序列相匹配. 2.作用:可以实现快速检索文本.实现替换文本的操作. 3.场景: 1.检测一串数字是否是 ...

  5. CSS选择器世界

    CSS选择器世界 CSS选择器的分类与优先级 css选择器分为四类:选择器.选择符(后代关系的空格.>.+.~.||).伪类.伪元素(::before.::after.::first-lette ...

  6. React中使用 PropTypes 进行类型检查

    官方文档学习链接:https://zh-hans.reactjs.org/docs/typechecking-with-proptypes.html import React, { Component ...

  7. js位运算-按位非

    正数 取得二进制表示 取反(发现符号位是1,表示负数) 符号位不变,其余位取反 取反后加一 负数 取得负数的二进制表示(即绝对值的二进制反码加一) 取反即可

  8. 7.【Spring Cloud Alibaba】微服务的用户认证与授权

    有状态 vs 无状态 有状态 那么Session在何时创建呢? 当然还是在服务器端程序运行的过程中创建的,不同语言实现的应用程序有不同创建Session的方法,而在Java中是通过调用HttpServ ...

  9. 关于simplememory theme的设置和感想

    前言 首先,这是我第一次自己个性化博客的主题.如果下文所写如有不妥之处还望大佬指出 参考 这次设置多亏了GitHub上的开源代码:https://github.com/BNDong/Cnblogs-T ...

  10. 关于存储最近N次数据的问题的实现

    需求描述: 需要实现采集中,始终保持最近10次的数据 描述分析: 当采集第一次数据的存储的时候,开辟一个长度为11的list,和一个标记为来记录当前的采集轮询次数(记录1-10,第11次数值归1) 数 ...