자바 byte char short int float long double 철저히 이해
여기 서 우 리 는 자바 의 수치 유형 만 이야기 합 니 다.
먼저 byte:
이 부분 은 jdk 에서 Byte. java 에서 추출 한 원본 코드 입 니 다.
/** * A constant holding the minimum value a
byte
can * have, -27. */public static final byte MIN_VALUE = -128;/** * A constant holding the maximum value a byte
can * have, 27-1. */public static final byte MAX_VALUE = 127; 여기 서 byte 의 수치 범 위 를 알 수 있다. - 128 - 127;
컴퓨터 구성 원리 의 측면 에서 설명 할 수 있 듯 이 byte 는 컴퓨터 에서 8 개의 바이트 를 차지 하고 byte 는 기호 성형 이 있 을 때 이 진 으로 표시 할 때 가장 높 은 위 치 는 기호 비트 0 이 정수 1 을 대표 하 는 음 수 를 나타 낸다.
최대 치: 127 0111 1111 즉 2 의 7 차방 에서 1 을 빼 기;
최소 값: - 128 이라는 숫자 가 저 를 오랫동안 괴 롭 혔 습 니 다. 정수 가 컴퓨터 에 원래 코드 로 존재 하 는 지 알 아야 합 니 다. 음 수 는 컴퓨터 에 그 코드 형식 으로 존재 합 니 다. 그러면 음수 의 코드 는 어떻게 계산 합 니까?바로 음수 의 절대 치 의 원 코드 를 2 진법 으로 바 꾸 고 위치 에 따라 반 을 취하 고 1 을 더 하 는 것 이다.
아래 이거 10 이랑 - 10 을 예 로 들 어서 소개 해 드릴 게 요. :10 원 사이즈: 0000 1010 그것 이 컴퓨터 에 저장 되 어 있 는 것 은 0000 1010 이다. 그러면 - 10 은 요?앞에서 말 한 것 에 따 르 면 절대 치 는 10 이 고 이 진 0000 1010 으로 바 뀌 었 습 니 다. 비트 별로 1111 0101 을 취하 고 1 을 더 한 후에 1111 0110 입 니 다. 이것 은 - 10 코드 입 니 다. 좋 습 니 다. 컴퓨터 중의 1111 0110 이 대표 - 10 입 니 다.
보 겠 습 니 다. - 128. 절대 치 128 의 바 이 너 리 표시: 1000 0000 비트 당 0111 1111 1 을 더 한 후: 1000 만, 즉 - 128 은 컴퓨터 에서 1000 만 을 나타 낸다. 다시 한 번 볼 때 - 129 는 컴퓨터 에서 절대 치 129 의 범 위 는 byte 의 자릿수 를 넘 어 섰 다.
또 있 으 면 통과 할 수 있어 요.
System.out.println(Byte.MAX_VALUE);//System. out. println (Byte. MIN VALUE);/최소 값
Byte 의 최대 값 과 최소 값 을 출력 합 니 다.
다시 말 하면 byte 의 수치 범 위 는 - 128 - 127 밖 에 안 됩 니 다. 마이너스 2 의 7 제곱 에서 2 의 7 제곱 에서 1 을 빼 는 것 이다.
해당 하 는 short 는 16 비트 로 기호 성형 이 있 고 int 는 32 비트 로 기호 성형 이 있다. long 은 64 비트 로 기호 성형 이 있 으 면 위 와 같이 수치 범 위 를 계산 할 수 있다.
char 는 16 비트 부호 없 는 성형 으로 그 범위 가 0 - 2 인 15 차방 이라는 것 은 논쟁 할 여지 가 없다.
Character. java 에서 원본 코드 를 따 옵 니 다:
/** * The constant value of this field is the smallest value of type *
char
, '/u0000'
. * * @since 1.0.2 */public static final char MIN_VALUE = '/u0000';/** * The constant value of this field is the largest value of type * char
, '/uFFFF'
. * * @since 1.0.2 */public static final char MAX_VALUE = '/uffff'; float 는 32 비트 의 부동 소수점 형 으로 한다.
Float. java 원본 에서 떼 어 내기:
/** * A constant holding the largest positive finite value of type *
float
, (2-2-23)·2127. * It is equal to the hexadecimal floating-point literal * 0x1.fffffeP+127f
and also equal to * Float.intBitsToFloat(0x7f7fffff)
. */public static final float MAX_VALUE = 3.4028235e+38f;//0x1.fffffeP+127f/** * A constant holding the smallest positive nonzero value of type * float
, 2-149. It is equal to the * hexadecimal floating-point literal 0x0.000002P-126f
* and also equal to Float.intBitsToFloat(0x1)
. */public static final float MIN_VALUE = 1.4e-45f;//0x0.000002P-126f double 은 64 로 부동 소수점 형 이다.
Double. java 원본 코드:
/** * A constant holding the largest positive finite value of type *
double
, * (2-2-52)·21023. It is equal to * the hexadecimal floating-point literal * 0x1.fffffffffffffP+1023
and also equal to * Double.longBitsToDouble(0x7fefffffffffffffL)
. */public static final double MAX_VALUE = 1.7976931348623157e+308;//0x1.fffffffffffffP+1023/** * A constant holding the smallest positive nonzero value of type * double
, 2-1074. It is equal to the * hexadecimal floating-point literal * 0x0.0000000000001P-1022
and also equal to * Double.longBitsToDouble(0x1L)
. */public static final double MIN_VALUE = 4.9e-324;//0x0.0000000000001P-1022 이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.