热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JAVAbyte取值范围表达理解

我们知道JAVA中byte是一个字节来进行存储的,即8位二进制数,可以表示的数字有256个即(0-255) 但计算机中需要表示正数和负数,那么负数在计算机中怎么表示呢?这里涉及一个

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

 

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

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

模:

模 即n位m进制能表示的数字的个数,那么8位二进制数的模就是256 

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

 

补数:

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

 

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

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

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

 

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

数字和对应的二进制

0127
0000 00000111 1111

 

128表示-128255表示-1
1000 00001111 1111

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

 

源码,反码,补码体系

 

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

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

[+1] = [00000001] = [00000001] = [00000001]

[-1] = [10000001] = [11111110] = [11111111]

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

 

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

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

 


推荐阅读
  • FastDFS Nginx 扩展模块的源代码解析与技术剖析
    FastDFS Nginx 扩展模块的源代码解析与技术剖析 ... [详细]
  • 本文介绍了UUID(通用唯一标识符)的概念及其在JavaScript中生成Java兼容UUID的代码实现与优化技巧。UUID是一个128位的唯一标识符,广泛应用于分布式系统中以确保唯一性。文章详细探讨了如何利用JavaScript生成符合Java标准的UUID,并提供了多种优化方法,以提高生成效率和兼容性。 ... [详细]
  • SQLite数据库CRUD操作实例分析与应用
    本文通过分析和实例演示了SQLite数据库中的CRUD(创建、读取、更新和删除)操作,详细介绍了如何在Java环境中使用Person实体类进行数据库操作。文章首先阐述了SQLite数据库的基本概念及其在移动应用开发中的重要性,然后通过具体的代码示例,逐步展示了如何实现对Person实体类的增删改查功能。此外,还讨论了常见错误及其解决方法,为开发者提供了实用的参考和指导。 ... [详细]
  • CAS 机制下的无锁队列设计与实现 ... [详细]
  • 在处理大图片时,PHP 常常会遇到内存溢出的问题。为了避免这种情况,建议避免使用 `setImageBitmap`、`setImageResource` 或 `BitmapFactory.decodeResource` 等方法直接加载大图。这些函数在处理大图片时会消耗大量内存,导致应用崩溃。推荐采用分块处理、图像压缩和缓存机制等策略,以优化内存使用并提高处理效率。此外,可以考虑使用第三方库如 ImageMagick 或 GD 库来处理大图片,这些库提供了更高效的内存管理和图像处理功能。 ... [详细]
  • 本文深入剖析了jQuery的架构设计与实现原理。jQuery的总体结构采用了一个自执行匿名函数的形式,该函数接收`window`和`undefined`作为参数,并在内部定义了一个局部的jQuery副本,以确保其内部变量和方法不会污染全局命名空间。这种设计不仅提高了代码的封装性和安全性,还使得jQuery能够更好地与其他JavaScript库兼容。通过详细分析这一架构,读者可以更好地理解jQuery的核心机制及其高效运行的原理。 ... [详细]
  • 近日,百度推出了一项新功能,允许用户通过搜索框直接登录邮箱,这一创新举措显著提升了用户体验。这不仅体现了百度在搜索引擎技术方面的持续进步,也为未来的搜索技术发展提供了重要启示。通过整合多种服务,搜索引擎正逐渐成为用户日常生活中的多功能平台,未来有望实现更多便捷的功能和服务。 ... [详细]
  • 字节跳动深圳研发中心安全业务团队正在火热招募人才! ... [详细]
  • Python 实战:异步爬虫(协程技术)与分布式爬虫(多进程应用)深入解析
    本文将深入探讨 Python 异步爬虫和分布式爬虫的技术细节,重点介绍协程技术和多进程应用在爬虫开发中的实际应用。通过对比多进程和协程的工作原理,帮助读者理解两者在性能和资源利用上的差异,从而在实际项目中做出更合适的选择。文章还将结合具体案例,展示如何高效地实现异步和分布式爬虫,以提升数据抓取的效率和稳定性。 ... [详细]
  • 本文深入探讨了CGLIB BeanCopier在Bean对象复制中的应用及其优化技巧。相较于Spring的BeanUtils和Apache的BeanUtils,CGLIB BeanCopier在性能上具有显著优势。通过详细分析其内部机制和使用场景,本文提供了多种优化方法,帮助开发者在实际项目中更高效地利用这一工具。此外,文章还讨论了CGLIB BeanCopier在复杂对象结构和大规模数据处理中的表现,为读者提供了实用的参考和建议。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • 通过以下步骤可以确定SharePoint网站集对应的W3WP进程及其运行状态:首先,打开命令提示符(CMD),然后输入 `iisapp` 命令,该命令将列出当前IIS中所有Web应用程序及其对应的w3wp.exe进程。此外,还可以使用任务管理器或PowerShell脚本来进一步检查这些进程的详细信息和运行状态,以确保网站集的正常运行。 ... [详细]
  • 本文探讨了深度学习技术的基本原理及其广泛应用。通过分析深度学习的核心算法和模型结构,文章详细介绍了该技术在图像识别、自然语言处理和语音识别等领域的实际应用。此外,还讨论了深度学习在医疗诊断、自动驾驶和金融预测等方面的发展潜力和挑战。 ... [详细]
  • CSS中的pointer-events属性详解与应用
    在CSS中,`pointer-events`属性是一个非常实用但常被忽视的功能。它主要用于控制元素是否响应鼠标事件。当一个元素覆盖在其他元素之上时,通过设置`pointer-events`属性,可以决定该元素是否能够接收鼠标点击、悬停等交互操作,从而实现更灵活的用户界面设计。例如,将`pointer-events`设置为`none`可以使元素透明地传递鼠标事件,方便实现复杂的叠加效果和交互逻辑。 ... [详细]
  • 在基于.NET框架的分层架构实践中,为了实现各层之间的松散耦合,本文详细探讨了依赖注入(DI)和控制反转(IoC)容器的设计与实现。通过合理的依赖管理和对象创建,确保了各层之间的单向调用关系,从而提高了系统的可维护性和扩展性。此外,文章还介绍了几种常见的IoC容器实现方式及其应用场景,为开发者提供了实用的参考。 ... [详细]
author-avatar
萍水相逢--莹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有