java求补码

java求补码,第1张

~在c和java语言中都是求反码,或者叫位非NOT运算。

java的运算有特殊性:

4的二进制为100,

执行~4后转换成32位有符号整型(int),值为11111111111111111111111111111011

打印时,按有符号解释成-5。

C语言的运算和java大类相同,但要注意几点

1、注意意无符号的情况。unsigned int i=~4的值就是4294967291

2、注意变量的数据长度。在c中,char和char之间,short和short之间,long和long之间的加减都按本身定义的长短。而不像java都统一转换成32位int后进行运算

3、注意显示时符号的有无。printf中的%d和%u对显示结果就有本质区别

给你一个:

import java.util.*

public class TestBina{

static void printBinaryInt(int i){

System.out.println("int:"+i+",binary:")

System.out.print(" ")

for(int j=31j>=0j--)

if(((1<<j)&i)!=0)

System.out.print("1")

else

System.out.print("0")

System.out.println()

}

public static void main(String [] args){

Random rand = new Random()

int i = rand.nextInt()

int j = rand.nextInt()

printBinaryInt(i)

printBinaryInt(j)

printBinaryInt(10)

printBinaryInt(-10)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11799224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存