java中整数如何表示,在Java中如何在位级别上内部表示整数?

548fd55efaea02b0f1434b90588fd824.png

慕瓜9086354

Java整数为32位,并且总是带符号的。这意味着,最高有效位(MSB)用作符号位。用an表示的整数int不过是位的加权和。权重分配如下:Bit#    Weight31      -2^3130       2^3029       2^29...      ...2        2^21        2^10        2^0请注意,MSB的权数为负(实际上最大可能为负),因此,当该位打开时,整数(加权和)将为负。让我们用4位数字对其进行仿真:Binary    Weighted sum            Integer value0000       0 + 0 + 0 + 0           00001       0 + 0 + 0 + 2^0         10010       0 + 0 + 2^1 + 0         20011       0 + 0 + 2^1 + 2^0       30100       0 + 2^2 + 0 + 0         40101       0 + 2^2 + 0 + 2^0       50110       0 + 2^2 + 2^1 + 0       60111       0 + 2^2 + 2^1 + 2^0     7 -> the most positive value1000      -2^3 + 0 + 0 + 0        -8 -> the most negative value1001      -2^3 + 0 + 0 + 2^0      -71010      -2^3 + 0 + 2^1 + 0      -61011      -2^3 + 0 + 2^1 + 2^0    -51100      -2^3 + 2^2 + 0 + 0      -41101      -2^3 + 2^2 + 0 + 2^0    -31110      -2^3 + 2^2 + 2^1 + 0    -21111      -2^3 + 2^2 + 2^1 + 2^0  -1因此,二进制补码不是表示负整数的排他方案,而是可以说整数的二进制表示始终相同,我们只是忽略了最高有效位的权重。该位确定整数的符号。在C中,有一个关键字unsigned(在Java中不可用),可用于声明unsigned int x;。在无符号整数中,MSB的权重为正(2^31),而不为负。在这种情况下,an的范围unsigned int是0to 2^32 - 1,而an的int范围是-2^31to 2^31 - 1。从另一个角度来看,如果您考虑xas 的二的补码~x + 1(NOT x加一),则说明如下:对于任何x,~x都只是的按位倒数x,因此,凡是x带有1-bit的位置,~x都将带有0-bit的位置(反之亦然)。因此,如果将它们加起来,则加法运算中将不会有进位,并且总和将只是一个整数,其每一位均为1。对于32位整数:x + ~x = 1111 1111 1111 1111 1111 1111 1111 1111x + ~x + 1 =   1111 1111 1111 1111 1111 1111 1111 1111 + 1           = 1 0000 0000 0000 0000 0000 0000 0000 0000最左边的1位将被丢弃,因为它不适合32位(整数溢出)。所以,x + ~x + 1 = 0-x = ~x + 1因此,您可以看到负数x可以由表示~x + 1,我们称它们为的补数x。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

洛谷-P1160 队列安排

题目 Problem Description 一个学校里老师要将班上N个同学排成一列,同学被编号为1~N,他采取如下的方法: 1.先将1号同学安排进队列,这时队列中只有他一个人; 2.2~N号同学依次入列,编号…

1.HTML小结

HTML 基本文档 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>文档标题</title> </head> <body> 可见文本... </body> </html> <!DOCTYPE html>html文件声明。charset"UTF-8…

方法参数名称和Spring

继续之前的博客文章有关构造函数和方法参数以及Java在运行时不保留参数名称的情况–先前的文章涉及构造函数不保留参数名称及其对Spring中的Contructor注入的含义&#xff0c;在此我将介绍更多内容不保留参数名称的情况对Spring有影响&#xff1a; 1.考虑带参数的Spring MVC C…

Fragment Or DialogFragment Can not perform this action after onSaveInstanceState

转载&#xff1a;http://blog.csdn.net/chenshufei2/article/details/48747149 public void show(FragmentManager manager, String tag) {mDismissed false;mShownByMe true;FragmentTransaction ft manager.beginTransaction();ft.add(this, tag);ft.commit(); //注意这里…

php延迟更新,ThinkPHP开发指南-模型-高级模型之延迟更新

导航&#xff1a;上一页我们经常需要给某些数据表添加一些需要经常更新的统计字段&#xff0c;例如用户的积分、文件的下载次数等等&#xff0c;而当这些数据更新的频率比较频繁的时候&#xff0c;数据库的压力也随之增大不少&#xff0c;我们可以利用高级模型的延迟更新功能缓…

three.js制作3d模型工具_3D打印模型打磨抛光常用工具

对于追求更好模型品质的人来说&#xff0c;对3D打印模型进行后处理工作是必不可少的&#xff0c;而后处理&#xff0c;首要的便是对模型进行打磨、抛光&#xff0c;将不属于模型的耗材去除&#xff0c;提高表面光洁度。在此工作中&#xff0c;我们需要用到很多工具&#xff0c;…

Linux中文档去掉windows文本的多余的回车符(^M)

1) 使用sed 去掉windows下的回车符 &#xff08;注意^M 在linux 下写法 按^M 是回车换行符,输入方法是按住CTRLv,松开v,按m)sed -i s/^M//g filename 2) 在vim下类似 :%s/^M//g &#xff08;^M输入方法和上面方法相同&#xff09; 3) 使用dos2unix dos2unix filename 个人觉得第…

为何要清除浮动?如何清除?

原因&#xff1a; 元素设置了float属性后&#xff0c;就会脱离文档流&#xff0c;当 包含框 的高度小于 浮动框 的时候&#xff0c;会出现高度塌陷。因此才需要清除浮动&#xff01; 表现如图&#xff1a;包括框container已经包不住float的图片了&#xff01; 清除浮动方法&a…

Spring MVC错误处理示例

这篇文章描述了在Spring MVC 3中执行错误处理的不同技术。该代码在GitHub上的Spring-MVC-Error-Handling目录中可用。 它基于带有注释的Spring MVC示例。 在Spring 3之前处理异常 在Spring 3之前&#xff0c;使用HandlerExceptionResolvers处理异常。 此接口定义一个方法&…

PLSQL 学习之路(1)创建用户,表空间,表,数据

1.用SYS用户登录PL/SQL SYSXE as SYSDBA 2.创建表空间 create tablespace Mars datafile F:\oracle\Mars.dbf size 500M autoextend on next 100M maxsize unlimited logging extent management local autoallocate segment space management auto; 3.创建用户 create user Mar…

php数字取反,[转+自]关于PHP7的新特性(涉及取反和disabled_functions绕过)

PHP7和PHP5上的安全区别preg_replace()不再支持/e修饰符利用\e修饰符执行代码的后门大家也用了不少了&#xff0c;具体看官方的这段描述:如果设置了这个被弃用的修饰符&#xff0c; preg_replace() 在进行了对替换字符串的 后向引用替换之后, 将替换后的字符串作为php 代码评估…

如何关闭苹果手机自动扣费_教你关闭苹果手机系统的自动更新功能,旧手机还能再用几年!...

大家都知道&#xff0c;苹果手机在更新几个大版本后&#xff0c;手机不是变得非常卡&#xff0c;就是非常的耗电&#xff0c;大大的缩短了手机的使用寿命。所以&#xff0c;许多人都不会选择更新系统&#xff0c;但是手机只要连上WiFi并且在充电状态&#xff0c;就会在半夜自动…

meta标签的常见用法

一、定义和用法 <meta> 标签始终位于 head 元素中。<meta> 元素可提供有关页面的元信息&#xff08;meta-information&#xff09;&#xff0c;元数据不会显示在页面上&#xff0c;但是对于机器是可读的。比如针对搜索引擎和更新频度的描述和关键词。 元数据&…

HttpClient的使用

新引入Hutool-HttpUtil的使用&#xff08;更简单&#xff0c;更强大&#xff01;&#xff09;&#xff0c;详见&#xff1a;http://www.cnblogs.com/jiangbei/p/7667858.html 一、概述 1.简介 根据凡技术必登其官网的原则&#xff08;如果有&#xff09;&#xff0c;我们可以先…

四人帮–代理设计模式

代理是另一种结构设计模式 &#xff0c;可以“代表”另一个对象或“代替”另一个对象以访问后面的对象。 何时使用此模式&#xff1f; 当我们需要创建一个包装来覆盖客户端的主要对象的复杂性时&#xff0c;将使用代理模式。 有哪些使用场景&#xff1f; 虚拟代理–设想一种…

面试题38_数字在排序数组中出现的次数

题目描写叙述 统计一个数字在排序数组中出现的次数。解题思路 数组是排序的&#xff0c;所以反复出现的数字是相邻排列的。 用二分查找算法&#xff0c;找到第一次出现的位置。和 最后一次出现的位置。 推断第一次出现的位置条件为&#xff1a;当前数字的前一个是否与之相等。若…

Hex hsl 转换 php,关于 RGB,HEX,HSL 颜色相互转换

最近一段时间在折腾一个微信在线编辑器的项目&#xff0c;使用 UEditor 进行二次开发。关于 UEditor 的定制&#xff0c;用到的都太粗浅&#xff0c;官方文档上都能找得到。主题使用的样式表是 ueditor.css 而不是ueditor.min.css&#xff0c;定制主题要注意这一点。而对整个项…

使用inetaddress测试目标可达性_PDPS软件机器人虚拟仿真:Smart Place功能介绍与使用方法...

概述对于机器人工作站或生产线的虚拟仿真&#xff0c;很大一部分的作用是找出机器人与工装夹具等外围设备的最佳布局位置。市面上大多数的工业机器人虚拟仿真软件都有这种专门用于检测机器人与外围设备之间最佳布局位置的功能&#xff0c;比如DELMIA软件中的“Auto Place”功能…

JAVA基础3——常见关键字解读(1)

常见的JAVA中的关键字 static static静态变量 静态变量&#xff1a;使用static关键字定义的变量。static可以修饰变量和方法&#xff0c;也有static静态代码块。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说&#xff0c;它不依赖类特定的实例&#xff0c;被…

PostgreSQL PL / java简介

现代数据库允许以多种语言编写存储过程。 一种常见的实现语言是java.NB&#xff0c;本文讨论了PostgreSQL特定的Java实现。 其他数据库的详细信息会有所不同&#xff0c;但是概念是相同的。 PL / Java的安装 在Ubuntu系统上安装PL / Java很简单。 我将首先创建一个新模板templ…