java取反,java取反函数

本文目录一览:

java中按位取反运算的详解

按位取反就是每一位都取反,所谓取反就是1变0,0变1

比如楼主说的10

二进制表示就是00000000

00000000

00000000

00001010

取反后就是11111111

11111111

11111111

11110101

这在十进制中就是-11

而他的二进制原码表示就是-1011

Java中取反是怎么算的

5:00000101

取反:11111010

因为数在计算机里是用补码形式存放的…所以要把11111010看做一段补码

现在把补码转化为原码,第一位是符号..不用变..先变成反码..减1就可以..11111001

再变为原码10000110,即-6

52

5:00000101

2:00000010

与就是各个位做与运算..

10=0

00=0

11=1

结果就是00000000

关于JAVA 中取反问题

在2进制中,负数是以它正值的补码形式表达

原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。

比如

0000

0000

0000

0000

0000

0000

0000

0101是

5的

原码。

反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。

取反操作指:原为1,得0;原为0,得1。(1变0;

0变1)

比如:将5的二进制表达式的每一位取反,得

1111

1111

1111

1111

1111

1111

1111

1010

称:1111

1111

1111

1111

1111

1111

1111

1010

0000

0000

0000

0000

0000

0000

0000

0101

的反码。

反码是相互的,所以也可称:

1111

1111

1111

1111

1111

1111

1111

1010

0000

0000

0000

0000

0000

0000

0000

0101

互为反码。

补码:反码加1称为补码。

也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。

那么,5的补码为:

1111

1111

1111

1111

1111

1111

1111

1010

+

1

=

1111

1111

1111

1111

1111

1111

1111

1011

所以,-5

在计算机中的二进制表达为:

1111

1111

1111

1111

1111

1111

1111

1011

转换为十六进制:0xFFFFFFFB。

====================================

明白了上面的就可以理解怎么求

~i

int型储存32个二进制位,~这个符号是按位取反,就是求i的反码。

即得到1111

1111

1111

1111

1111

1111

1111

1010

上面这串二进制代表一个负数,将它转换成int型过程如下:

1111

1111

1111

1111

1111

1111

1111

1010-1

=

1111

1111

1111

1111

1111

1111

1111

1001

再求反:

0000

0000

0000

0000

0000

0000

0000

0110

这个值就是5的按位取反所得到的int整数的绝对值(注意:5按位取反得到的是负数)

所以转换为int型为:6

即:int型的i=5

取反后的结果为-6

原创文章,作者:LDUK,如若转载,请注明出处:https://www.506064.com/n/143308.html

(0)
LDUKLDUK
上一篇 2024-10-14
下一篇 2024-10-14

相关推荐

  • chdir函数c语言,char函数c语言

    本文目录一览: 1、C语言chdir函数用法 2、C语言函数的目录函数 3、电脑中CHDIR什么意思? 4、如何用c语言打开多个文件或文件夹 5、C语言中什么函数可以设置程序的当前…

    编程 2024-10-14
  • CSS媒体查询类型

    CSS媒体查询类型是指用于动态调整网页样式的CSS3功能,可以根据不同的设备(如手机、平板电脑、电视)和浏览器窗口大小来设置不同的样式。这使得网站能够适应各种不同的屏幕尺寸和设备类…

    编程 2024-10-04
  • 关于thumbnail.php的信息

    本文目录一览: 1、wordpress如何单独调用文章中的图片 2、PHP 图片无法显示 !!! 3、怎么让wordpress前台显示的图片是调用缩略图的尺寸而不是特色图像尺寸 w…

    编程 2024-10-04
  • 探索Python中的whl安装

    1. 引言 Python作为一门流行的高级编程语言,在广泛的应用中,可能会遇到各种各样的Python包。Python包的安装方式一般有两种:源代码安装和whl安装。本文将探索Pyt…

    编程 2024-10-03
  • 深入理解MySQL DELETE语句

    MySQL是一个非常流行的关系型数据库管理系统。DELETE语句是MySQL中常用的一种语句,用于删除数据表中的一些记录。本文将从多个方面对MySQL DELETE语句进行详细讲解…

    编程 2024-10-04
  • java插件开发模式(java 插件框架)

    1、如何用java做插件式软件开发 2、java常用的的设计模式和开发模式都有哪些 3、如何用Java做插件式软件开发 这问题好笼统。 我们公司现在的系统是这么玩的, 在eclip…

    编程 2024-10-03
  • nginx是干嘛用的?

    一、什么是nginx? NGINX是一款轻量级的高性能Web服务器,反向代理服务器和电子邮件(IMAP/POP3)代理服务器,旨在提供高度可扩展性、性能更好且低消耗内存的解决方案。…

    编程 2024-10-04
  • 关于php一个amp多个地址的信息

    本文目录一览: 1、PHP网站中,多个链接调用一个地图。。。。解决过后高分悬赏 2、php嵌入百度地图怎么设置地点 3、谷歌地图上如何同时标记多个地点? 4、map标签和php配合…

    编程 2024-10-04
  • Java高级编程,java高级编程技术

    本文目录一览: 1、Java高级编程有哪些知识呀 2、Java软件工程师一般要上哪些课程? 3、北大青鸟java培训:零基础如何学懂Java语言? 4、学Java的好处有哪些? J…

    编程 2024-10-03
  • cjsnac的简单介绍

    本文目录一览: 1、cj是什么意思 2、cj的意思 3、苹果手机短信号码前出现“可能”二字是什么原因? 4、圣安地列斯CJ结局 5、SNAC是什么意思 6、方正显示器和sNAC显示…

    编程 2024-10-03

发表回复

登录后才能评论