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)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)