在java中~5具体计算过程,万分感谢!

作者&投稿:茌钢 (若有异议请与网页底部的电邮联系)
java中~5如何计算,求过程。~

~是按位取反,写出5的二进制,然后每一位反过来就可以了,5的二进制如下:
00000000 00000000 00000000 00000101
按位取反后得:
11111111 11111111 11111111 11111010
即-6

dtya@zzu:~$ cat Test.java import java.io.*;public class Test{ public static void main(String[] args) { int a=5; System.out.println(~a); }}dtya@zzu:~$ javac Test.java dtya@zzu:~$ java Test -6
java 中int 类型的32位,补码表示,5的补码:
0000 0000 0000 0000 0000 0000 0000 0101
首位0表示整数
取反:
1111 1111 1111 1111 1111 111 1111 1010
首位1表示负数,它的值是后31位取反加1.
先取反:
000 0000 0000 0000 0000 0000 0000 0101
再加1 :
000 0000 0000 0000 0000 0000 0000 0110(6)
故此:~5=6

附录:
补码相关知识:
计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。

正数
正整数的补码与原码相同。
【例1】+9的补码是00001001。(备注:这个+9的补码是用8位2进制来表示的,补码表示方式很多,还有16位二进制补码表示形式,以及32位二进制补码表示形式,64位进制补码表示形式等。每一种补码表示形式都只能表示有限的数字。)
负数
求负整数的补码,原码符号位不变,先将原码减去1,最后数值各位取反。(但由于2进制的特殊性,通常先使数值位各位取反,最后整个数加1。)
同一个数字在不同的补码表示形式中是不同的。比如-15的补码,在8位二进制中是11110001,然而在16位二进制补码表示中,就是1111111111110001。以下都使用8位2进制来表示。
【例2】求-5的补码。
因为给定数是负数,则符号位为“1”。
后七位:-5的原码(10000101)→符号位不变(10000101)→数值位取反(11111010)→加1(11111011)
所以-5的补码是11111011。
【例3】数0的补码表示是唯一的。
[+0]补=[+0]反=[+0]原=00000000
[ -0]补=11111111+1=00000000
转化为原码
已知一个数的补码,求原码的操作其实就是对该补码再求补码:
⑴如果补码的符号位为“0”,表示是一个正数,其原码就是补码。
⑵如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。
【例4】已知一个补码为11111001,则原码是10000111(-7)。
因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”。
其余七位1111001取反后为0000110;
再加1,所以是10000111。
补码的绝对值
(称为真值)
【例5】-65的补码是10111111
若直接将10111111转换成十进制,发现结果并不是-65,而是191。
事实上,在计算机内,如果是一个二进制数,其最左边的位是1,则我们可以判定它为负数,并且是用补码表示。
若要得到一个负二进制补码的真值,只要对补码全部取反并加1,就可得到其真值。
如:二进制值:10111111(-65的补码)
各位取反:01000000
加1:01000001(+65)

5 二进制 00000101
取反~5 二进制 11111010(此时以-6的补码存在)
再取反为 10000101
再加1为 10000110(-6)
负数补码取反再加1等于负数原码

这是按位非运算符,5的补码是0000 0000 0000 0000 0000 0000 0000 0101,按位非就是给每个位置上的取反,则~5的1111 1111 1111 1111 1111 1111 1111 1111 1010

5的二进制为 0000 0101~5的二进制为 1111 1010-6的二进制为 1111 1010

——5是什么意思

~是取反运算符


在java中~5具体计算过程,万分感谢!
5 二进制 00000101 取反~5 二进制 11111010(此时以-6的补码存在)再取反为 10000101 再加1为 10000110(-6)负数补码取反再加1等于负数原码

java中~5如何计算,求过程。
~是按位取反,写出5的二进制,然后每一位反过来就可以了,5的二进制如下:00000000 00000000 00000000 00000101 按位取反后得:11111111 11111111 11111111 11111010 即-6

java中按位取反 ~5=-6是为什么?
\\x0d\\x0a\\x0d\\x0a5=00000101(B)\\x0d\\x0a对5取 ~5 = 11111010(B)(首位是1,说明是负数)\\x0d\\x0a然后减去1 = 11111001(B) \\x0d\\x0a然后取反 = 00000110(B) = 6(D) 这就是结果的正数部分\\x0d\\x0a你算一下最后的结果11111010(B)的正数部分是不是6呢?所以嘛~5=-6 ...

java中按位取反 ~5=-6为什么呀?
这是因为整数在计算机中是二进制存储的。java中 ~5=-6 ,而这个-6是输出到屏幕上,我们看到的是-6。首先看对5求反,5的二进制原码是:0000 0101,取反之后是:1111 1010 ,得到的这个值在计算机中的存储原型也是 1111 1010,而要把这个结果显示出来,到计算机屏幕上就要转换成十进制,也就是说 1...

java 中的 ~ 取补码的详细意思是什么 ?
~就是取反的意思。就是把那个数字的二进制位,原来是0的变为1,原来是1的变为0.而二进制补码表示的数字(现在的计算机几乎都是用的二进制补码来表示的)进行这样的操作就等于取相反数再减一。所以~5就是-5-1=-6.而后面那个~a-b就是~5-3,而~5=-6所以就是-6-3=-9了。对于二进制补码...

java当中-5<<2该怎么计算呢?
这个的意思就是-5乘以2的2次方,也就是-5*(4)=-20

java中按位取反 ~4=5 怎么算的 求具体步骤
正数的补码为0100 然后取反 1011,我们知道反码+1=补码,反码就为补码-1,也就是1010,然后取反0101,值已经出来了为5,符号位看补码,补码最高位为0代表正数,最高位为1代表负数,所以答案应该是-5,而不是5 (值多少看原码,符号位看补码)

Java中位运算,对整数5按位取反怎么算
java中负数是用补码表示的,非负数用原码表示 补码=绝对值的原码的反码+1 用byte吧,int32位的,原理类似 -6的绝对值 0000 0110 反码 1111 1001 补码 1111 1010 byte的-6在内存中就是1111 1010 byte的5在内存中是原码 0000 0101 这不正好是按位取反的嘛 === 按位与就是一位一位的与。。

java中怎么理解带参方法?如何理解使用返回值?
带参方法:说明该方法在使用时要特别指定一些限制或要求,比如add(int x,iny),就是计算x+y的值,x,y在术语上称为形参,所以你使用时,要告诉他x,y都是什么,而这一做法在术语上称为传参,比如add(5,6),而具体5,6,就是你具体传入的值,在术语上称为实参。int add(int x,iny),前面的...

java中每个运算符的具体计算。比如说: int j=1 for(int i=5 ;i>0...
可以使用eclipse平台中的但不执行啊 第一次for循环之后 i=5,j=1*5=5;第一次for循环之后 i=3, j=3*5=15;第一次for循环之后 i=1, j=1*15=15;我觉得你最好学会单步调试,还有这个是最基础的,多看些书,例子仔细看一下……...

江口县19381573179: 在java中~5具体计算过程,万分感谢! -
倚妮龙威: 5 二进制 00000101 取反~5 二进制 11111010(此时以-6的补码存在) 再取反为 10000101 再加1为 10000110(-6) 负数补码取反再加1等于负数原码

江口县19381573179: java中按位取反 ~4=5 怎么算的 求具体步骤 -
倚妮龙威: 正数的补码为0100 然后取反 1011,我们知道反码+1=补码,反码就为补码-1,也就是1010,然后取反0101,值已经出来了为5,符号位看补码,补码最高位为0代表正数,最高位为1代表负数,所以答案应该是-5,而不是5(值多少看原码,符号位看补码)

江口县19381573179: JAVA问题 麻烦把详细计算过程讲一遍,谢谢 -
倚妮龙威: float x=2.4f; int a=0; switch((int)x)//强转int整型省略掉小数点,x=2 { case 1:a++; case 2:a+=2;//直接跳入这里a+=2 此时a=2; case 3:a+=3;//因为没有break;这里也会被执行;a+=3; 此时a=2+3=5; }//所以结果a=5;

江口县19381573179: Java中位运算,对整数5按位取反怎么算 -
倚妮龙威: 转二进制取反得到的也是-6 你再把它转成10进制数就能看到结果了 5(2) = 101 2(2) = 010 &是安位与,两个都是1才得1 所以上面5和2对应1的位数刚好叉开了,&后得到000,也就是0了

江口县19381573179: JAVA算术运算符里的取模(%)怎么计算的?例如5%5运行结果就是0, 5% - 2运行结果是1,这是怎么得来的?
倚妮龙威: 求模就是求余数,除不尽的部分就被当做余数来处理,5%5没有余数,所以答案是0 一般求余数都是2个整数之间的运算,但是java里面除了 布尔类型的不能做求模运算外,其他的都可以. 5%-2 = -2 余1所以答案是1

江口县19381573179: Java中“按位或”和“按位与”怎么计算啊?以4|5、4&5为例你给我讲讲可以吗?谢谢了! -
倚妮龙威: 将十进制数字转化成二进制,再分别按位与(或) 与:1 1相与为1 、 0与任何数字相与为0 或:1 1相或为1 、1与任何数字相或为1

江口县19381573179: java中如何对较大的数字进行计算 -
倚妮龙威: 在Java中针对比较大的数字,有大数类型来进行表示.即BigInteger和BigDecimal两个类. 以BigDecimal为例: BigDecimal bigDecimalA = new BigDecimal("1234567890123456789012345678901"); BigDecimal bigDecimalB = new ...

江口县19381573179: java语言a=5;(a++)*( -- a)/(++a);求解详细分解过程: -
倚妮龙威: public static void main(String[] args) {int c = 5;System.out.println("目前cc的值:" + c);System.out.println("c++:表示先带入运算,再+1,所以带入计算的值是" + (c++));System.out.println("目前c的值:" + c);System.out.println...

江口县19381573179: java中字符串连接问题:"5+5="+5+5;怎么连接,求具体步骤?? -
倚妮龙威: 结果是5+5=55 有字符串在前面的的情况下 会把字符串后面的内容也变成字符串

江口县19381573179: java中 - 5的反码是怎么计算的 补码呢 -
倚妮龙威: 先转换成二进制,就清晰了 11111011 逐位取位就是反码 补码就是和 & 0xff ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网