⑴ 有关java中Int数值运算的int a =(int)str.charAt(0)与int a = Integer.parseInt(str.charAt(0)+"")的区别
因为int a=(int)str.charAt(0)得到的a不是等于1,而是等于1的ASCII码
Integer.parseInt是常用的向int转换的函数
⑵ java int计算问题
首先你要明白什么是二进制,在计算机里存储的数据都是用二进制表示的,也就是0和1,int有正负,首位如果是 0,就是正的,1 就是负的。Java 中的 int 总共就 32 位,正数上限的情况首位也只能是 0,其他位都可以是 1(就是 2^31-1 的情况)。但是如果正数过大了,例如 2^31,计算机把首位变成 1。
http://blog.csdn.net/snipps/article/details/5408651看看这个,讲的比较明白
⑶ java中double和int类型可以相加吗
可以。多个double类型的数直接相加的时候,可能存在精度误差.( 由于计算机算法以及硬件环境决定只能识别 0 1。
计算机默认的计算结果在都在一个指定精度范围之内,想往深的了解,可以学习数值分析等) 在金融方面是绝对不允许的,好在java开发者有这个先见之明。
自动转换
一个 int 类型变量和一个 byte 类型变量进行加法运算, 结果会是什么数据类型?
int i = 1;
byte b = 2;
运算结果,变量的类型将是 int 类型,这就是出现了数据类型的自动类型转换现象。
自动转换:将 取值范围小的类型 自动提升为 取值范围大的类型 。
public static void main(String[] args) {
int i = 1;
byte b = 2;
// byte x = b + i; // 报错
//int类型和byte类型运算,结果是int类型
int j = b + i;
System.out.println(j);
}
⑷ java里int类型和char类型的运算原理
这种简单运算还要什么原理?
⑸ java中两个int类型的数据不能进行或运算吗
publicclassOrTest{
publicstaticvoidmain(String[]args){
inta=8,b=2;
System.err.println("与运算: "+(a&b));
System.err.println("或运算: "+(a|b));
System.err.println("非运算: "+(~a));
System.err.println("按位左移: "+(a<<b));
System.err.println("按位右移: "+(a>>b));
System.err.println("异或运算: "+(a^b));
}
}
⑹ java int double 加减法 基本类型运算问题
1.-2.8421709430404007E-14表示-2.8421709430404007乘以10的-14次方,计算机能准确表示十进制的整数,但不能准确表示十进制小数。System.out.println(150.0+0+183.28-0-183.28-150.0);150.0+0+183.28-0-183.28-150.0的结果为0.00000000000...,只不过你的输出结果为double型,精度比较高,没有超出打印函数(println之类的)的默认精度而已。
2.System.out.println(((150.00)+0.00+(183.28))-(0.00+(183.28)+(150.00)));中将((150.00)+0.00+(183.28))作为个运算单元,二个括号内的运算的结果肯定一样,与精度无关。结果当然为0。
3.用System.out.println((long)(150.0+0+183.28-0-183.28-150.0));(150.0+0+183.28-0-183.28-150.0)的结果为0.00000000...,转换成long,舍弃小数位,结果自然为0;
4.System.out.println(150.0F+0+183.28F-0-183.28F-150.0F); 运算结果为float型,超出打印函数(println之类的)的默认精度,截取下来为0。
不知道解释的你满意不?
⑺ java中的int的取值范围如何计算
1、java中int的取值范围为-2147483648到+-2147483648。
2、首先jdk中定义int占4个字节32位,32位就是jvm仅仅给分配32个格子的空间,用以存放数据。
3、计算机中用0和1存放数据。那么,32个格子中放满0或1的方法,有2的32次方种。
4、但是java中int有正负之分,所以32个格子中占用一个格子标识正负,仅仅能用31个格子来标识数值。最后int能标识的最大/最小数字是:2的31次方即+/-2147483648。取值范围即为二者之间。
(7)javaint运算扩展阅读:
一字节表示八位,即:1byte = 8 bit;
int: 4byte = 32 bit 有符号signed范围:2^31-1 ~ -2^31即:2147483647 ~ -2147483648无符号unsigned范围:2^32-1 ~ 0即:4294967295 ~ 0
long: 4 byte = 32 bit 同int型
double: 8 byte = 64 bit 范围:1.79769e+308 ~ 2.22507e-308
long double: 12 byte = 96 bit 范围: 1.18973e+4932 ~ 3.3621e-4932
float: 4 byte = 32 bit 范围: 3.40282e+038 ~ 1.17549e-038
⑻ java的int的两个类型相除,结果怎么取舍
Java中有除法运算(/)和取余运算(%)。
如果是两个int相除,取整除部分,忽略余数;
如果是两个int取余,取余数部分,忽略整除。
如:
publicstaticvoidmain(String[]args){
intm=5;
intn=2;
System.out.println("整除:"+(m/n));//结果为2
System.out.println("取余:"+(m%n));//结果为1
}
⑼ 关于java的int 数据计算。
这个其实就是先赋值后自加的问题,你换成int a,b,c;a=i++;b=i++;c=i++; count=a+b+c;然后把abc都打印出来就可以看到。加不加括号结果都一样但最后c的值才是5,但是赋值完后i还要自加所以是6.
⑽ java中int的用法
如果只是 d = 0肯定报错的,因为你没有指定类型
如果先写了int d = 0,再写 d = 0是没错的,因为前面已经声明过,后面的意思是改变其值