数据类型对比(long、int以及float和double) 蓝桥16进制转10进制

1、做蓝桥16转10进制时,没有注意到总共有八位数,那么十六进制换算成二进制应该是2的32位

而int表示32位、有符号的以二进制补码表示的整数,因此去除符号位,总共31位,最大表示的正整数为2的31次方-1;补充short表示2的16位

注:显然int的取值范围不够,因此我们该使用long数据类型,其范围为 64 位、有符号的以二进制补码表示的整数,最大表示的正整数为2的63次方-1

2、比如该题如果输入8F65CDBA,首位为8以上数字,表示第32位为1,为负数;

结果就会是负数

3、long+long*int=long而long+int*int=int表示long+long=long而long+int=int

但最好保持数据类型一致,int 与 long 进行运算、比较时 int 会自动进行类型提升为 long 类型

4、最好在long数据后面加L,这样就不会出现int到long自动转型的情况

注:加L仍然表示是数值,不影响其输出数据,不会出现数值+L的情况,比如0L输出还是0,只用于让计算机识别数据

5、double和float也要用D和F,而且属于浮点数,初始值均为0.0;后加D和F用于计算机识别

double的指数位有11位,-1024~1024(2^10);float只有8位,-128~128(2^7)

import java.util.*;

public class Main{
   
	public static void main(String[] args) 
	{
	   Scanner sc = new Scanner(System.in);
		 String str = sc.nextLine();
		 int n = str.length();	
		 char[] n16 = new char[n];
		 long[] n10=new long[n];
	   long res=0;
		for(int i=0;i

你可能感兴趣的:(开发语言,java)