我们知道JAVA中byte是一个字节来进行存储的,即8位二进制数,可以表示的数字有256个

但计算机中需要表示正数和负数,那么负数在计算机中怎么表示呢?

这里涉及一个新的概念就是

模:

模 即n个m进制能表示的数字的个数

如:八个二进制数的模就是256

两个十进制数呢,那就可以表示 0-99 这100个数,即模是100

(其实最终都是落地到二进制上来计算)

补数:

范围在 1~模 之间的任意两个相加等于模的数互为补数

先贤们就用一个很巧妙的方式来表达了负数:即在(0-模)范围内一半的数字表示正数,一半的数字表示负数

0-127(十进制) 这128个数字表示byte中的 0-127

128-225(十进制)这128个数字表示byte中-128 到 -1

在计算机中存储的二进制表示如下:

数字和对应的二进制

0 127
0000 0000 0111 1111
128表示-128 255表示-1
1000 0000 1111 1111

上面的二进制即是大家熟知的补码(补数对应的二进制数即补码)

源码,反码,补码体系

正数补码是其二进制数本身

负数的补码是首先获得其绝对值原码,再首位变1后其余取反再加1;

[+1] = [00000001]原 = [00000001]反 = [00000001]补

[-1] = [10000001]原 = [11111110]反 = [11111111]补

可以参看:http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html

这和用模的概念获得数字在计算机中存储的二进制结果是一致的,

可以说后者(原码,反码,补码)是一种途径,而前者(一半用来表示正数,一半用来表示负数)是约定;

JAVA byte取值范围表达理解相关推荐

  1. Java Byte取值范围

    Java Byte 的取值范围大家都知道(-128 ~ 127),那么-128 和 127 这两个数是怎么计算的呢? #大学知识回顾: 概念:负数的补码是该 数 绝 对 值 的 原 码 按 位 取 反 ...

  2. 为什么byte取值-128~127??

    转载自 为什么byte取值-128~127?? java设计byte类型为1个字节,1个字节占8位,即8bit,这是常识. 另外,计算机系统中是用补码来存储的,首位为0表示正数,首位为1表示负数,所以 ...

  3. Java Integer取值范围是多少呢?

    转自: Java Integer取值范围是多少呢? 下文笔者将使用实验的方式,讲述Integer类的取值范围,如下所示: Integer同int类型取值一致其取值范围是从-2147483648 至 2 ...

  4. java中 byte 取值范围_【二进制基础-java中byte的取值范围-推导过程】

    java中用补码表示二进制数,补码的最高位是符号位,最高位为"0"表示正数,最高位为"1"表示负数. 正数补码为其本身: 负数补码为其绝对值各位取反加1: 例如 ...

  5. java中 byte 取值范围_java中为什么byte的取值范围是-128到+127

    概念:java中用补码表示二进制数,补码的最高位是符号位,最高位为"0"表示正数,最高位为"1"表示负数. 正数补码为其本身: 负数补码为其绝对值各位取反加1: ...

  6. java map取值_Java Set接口 Map 与枚举

    Set接口 概述 一个不包含重复元素的 collection.更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素 特点 Set接口是 ...

  7. java list取值_Java集合详解

    一.集合的由来 通常,我们的程序需要根据程序运行时才知道创建多少个对象.但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型.为了满足这些常规的编程需要,我们要 ...

  8. java+jtextfield+取值_[求助]JTextfield 取值问题!

    [求助]JTextfield 取值问题! 我用K取JTextfield中的值 可怎么就是得不到在JTextfield输入的值 K始终=0 (原来JTextfield的初值)请教各位 代码下面 大部分是 ...

  9. java excel 取值_java实现Excel 单元格取值工具类

    在工作中经常遇到通过excel获取数据的需求,比如通过excel将数据提交到数据库等.现针对excel单元格的取值方法提取出来作为一个工具类. 具体代码如下: import org.apache.po ...

最新文章

  1. Python设计模式-职责链模式
  2. poj 3352【Road Construction】
  3. 数据库连接出错,请检查连接字串"的多种问题解决办法
  4. 分布式缓存——缓存与数据库数据一致性
  5. 从对象角度阐释五行变化
  6. 正则表达式简单语法及常用正则表达式
  7. 【PDF】处理pdf 文档的相关功能包总结
  8. .net 发布程序时出现“类型ASP.global_asax同时存在于...”错误的解决办法
  9. 2. APIS官网剖析(博主推荐)
  10. 【原创】Git版本控制器的基本使用
  11. 塑料模具计算机辅助设计,注塑模具3D计算机辅助设计系统
  12. windows下使用labelImg标注图像
  13. RDPWrap远程桌面的一次脱坑
  14. 广州计算机公办学校有哪些,广州各区小学对口中学列表,小学对口哪些初中?这里有名单大全...
  15. php include require m.jb51.net,phpmyadmin下载、安装、配置教程
  16. 《异常点检测》 - 第十章阅读记录 - 离散序列的异常点检测
  17. 如何使用思岚robostudio进行地图优化?
  18. Unity PC 打包后文件夹
  19. 网络基础:套接字编程,UDP和TCP通信程序
  20. 前向逐步线性回归算法

热门文章

  1. 大数据Hadoop底层技术和原理
  2. 【数据挖掘算法分享】机器学习平台——回归算法之随机森林
  3. 就业指导——自我介绍与个人简历
  4. 求两圆相交面积(模板)
  5. 【视频教程】帝国CMS制作网站系列教程17—帝国CMS模板的策划
  6. Redis 学习文档
  7. Llinux系统下大量复制文件和同时复制多个文件
  8. Hadoop高手之路5-MapRreduce
  9. 一张图,三分钟看懂什么是动态IP,内网和外网
  10. 毕业设计:基于JSP动漫论坛的设计与实现