>  기사  >  Java  >  Java의 바이트 유형에 대한 자세한 소개

Java의 바이트 유형에 대한 자세한 소개

青灯夜游
青灯夜游앞으로
2019-11-25 15:51:573933검색

Java는 기본 유형인 바이트 데이터 유형도 제공합니다. Java 바이트는 가장 작은 숫자로 처리되므로 해당 값의 범위는 부호 있는 바이트인 -128~127로 정의됩니다. 다음 글에서는 주로 Java의 바이트 유형에 대한 관련 정보를 소개합니다. 도움이 필요한 친구들이 참고할 수 있습니다.

Java의 바이트 유형에 대한 자세한 소개

【추천 학습: java 동영상 튜토리얼

Introduction

바이트, 즉 바이트는 8비트 바이너리로 구성됩니다. Java에서 바이트 유형 데이터는 8비트 부호 있는 이진수입니다.

컴퓨터에서 8비트 부호 있는 이진수의 값 범위는 [-128, 127]이므로 Java에서는 바이트 유형의 값 범위도 [-128, 127]입니다.

값 범위 분석

왜 -128부터 128이 아닌지 궁금합니다. 오늘 이 문제를 분석했습니다.

먼저 한 가지, 즉 연산 규칙을 ​​이해해야 합니다.

양수의 최상위 비트는 0이고, 양수의 값은 이진수로 표현되는 값입니다.

음수의 가장 높은 숫자는 1입니다. 음수의 값을 반전하고 1을 더한 다음 음수 기호를 추가하여 값을 얻습니다.

이 규칙을 설명하기 위해 8비트 바이너리를 사용합니다.

예: 00000001. 최상위 비트가 0이면 양수이므로 십진수로 1을 나타냅니다.

또 다른 예: 10000001. 가장 높은 비트는 음수인 1입니다. 값은 무엇인가요? 이를 부정하면 01111110이 되고 1을 더하면 01111111이 됩니다. 그러면 값은 -127입니다.

이 연산 규칙을 ​​이해하면 공식적으로 정확히 8비트 이진수인 바이트에 대해 이야기하기 시작합니다. short는 16비트, int는 32비트, long은 64비트입니다.

바이트의 최대 양수는 01111111(최고 비트는 0이어야 함), 즉 127이라는 것을 이해하는 것은 어렵지 않습니다.

그렇다면 바이트의 가장 작은 음수가 11111111이라고 생각하실 수도 있겠죠? 이렇게 생각하는 것은

큰 실수입니다. 이진수 11111111이 무엇을 나타내는지 살펴보겠습니다.

위 팁에 따르면 우리는 이것이 음수라는 것을 알고 있습니다. 해당 값이 먼저 부정된 다음 1이 추가됩니다.

11111111은 반전되어 00000000을 얻고, 1을 더하면 00000001이 됩니다. 최종적으로 얻은 값은 -1입니다.

이것은 가장 큰 음수입니다. 이로부터 가장 작은 음수가 10,000,000이 될 것이라고 생각해 본 적이 있습니까?

수학을 해서 부정을 해보자: 01111111, 1을 더해 10000000을 얻고, 마침내 -128을 얻습니다.

127은 01111111이지만, -128은 10000000이고, 우리는 이상한 것을 봅니다.

이 두 이진수를 주의 깊게 보세요. 전자에 1을 더하면 후자를 얻을 수 있나요? 오른쪽.

실험할 작은 프로그램을 작성할 수 있습니다.

byte a = 127; 
a+=1; 
System.out.println(a);

결과는 정확히 -128입니다

이로부터 우리는 이진수는 00000000부터 01111111부터 10000000부터 11111111

, 즉 십진수는 0부터 127부터 127까지라는 것을 알 수 있습니다. -128 ~ -1.

다음으로 바이트를 더 깊이 이해하기 위해 코드 조각을 사용합니다.

public class A {
 public static void main(String[] args) {
  int b = 456;
  byte test = (byte) b;
  System.out.println(test);
 }
}

위 코드는 최종적으로 -56을 출력합니다. 그 이유는 다음과 같습니다.

456의 이진 표현은 111001000입니다. int는 32비트 이진이므로 컴퓨터에서는 실제로 00000000000...111001000입니다. 마지막 8비트는 11001000입니다.

그러면 11001000의 최상위 비트는 1이므로 음수라는 뜻이고, 음수는 컴퓨터에서 2의 보수 형식으로 저장되므로 11001000의 원래 코드는 00111000, 즉 56이라고 계산하므로 11001000은 - 56이므로 최종 테스트 값은 -56입니다.

이 기사는 Java 시작하기 칼럼에서 가져온 것입니다. 학습을 환영합니다!

위 내용은 Java의 바이트 유형에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제