자바 바 이 너 리 에 관 한 기초 지식

설명 하 다.
모든 것 에 규범 이 있 고 JAVA 하면 2 가지 규범,JAVA 언어 규범,JVM 규범 을 언급 합 니 다.JAVA 언어 규범 은 주로 JAVA 의 문법,변수,유형,문법 등 을 정의 하고 JVM 규범 은 주로 Class 파일 유형,운행 시 데이터,프레임 스 택,가상 기기 의 작 동,가상 기기 의 명령 집합 등 을 정의 합 니 다.
  • JAVA 언어 규범 은 주로 JAVA 언어 가 무엇 인지 정의 한다.
  • JVM 규범 은 주로 JVM 내부 실현,바 이 너 리 class 파일 과 JVM 명령 집합 등 을 정의 합 니 다.
  • 규범 중의 숫자의 내부 표시 와 저장
    JAVA 8 가지 기본 데이터 형식:
  • 성형:byte,short,int,long
  • 부동 소수점 형:float,double
  • 불 형:boolean
  • 문자 형:char
  • 데이터 형식 이 차지 하 는 자릿수
  • 데이터 형식
    차지 하 는 자리수
    int
    32bit
    short
    16bit
    long
    64bit
    byte
    8bit
    char
    16bit
    float
    32bit
    double
    64bit
    boolean
    1bit
    비고:1 바이트=8 비트(1 byte=8bit)


    정수 적 표시
  • 소스 코드:첫 번 째 는 기호 위치(0 은 정 수 를 나타 내 고 1 은 음 수 를 나타 낸다).
  • 반 코드:기호 위치 가 움 직 이지 않 고 원 코드 는 반 코드 를 취한 다.
  • 음수 패 치:기호 위치 가 움 직 이지 않 고 리 코딩 에 1 을 추가 합 니 다.
  • 정수 코드:원본 코드 와 같 습 니 다.
  • 비고:패 치 의 장점:
    패 치 를 사용 하면 어떤 다른 의미 도 0 을 표시 하지 않 을 수 있 습 니 다.
    패 치 는 바 이 너 리 연산 에 잘 참여 할 수 있 고,패 치 와 기호 위 치 를 더 해 연산 에 참여 하면 훨씬 간단 하 다.
    부동 소수점 표시
    위의 그림 에서 우 리 는 Float 와 Double 이 모두 IEEE 754 를 지원 한 다 는 것 을 알 게 되 었 다.
    우 리 는 float 로 설명 한다.

    IEEE 745 단일 정밀도 부동 소수점 형식 은 모두 32 비트 로 세 개의 구성 필드 를 포함한다.23 비트 소수 f,8 비트 편향 지수 e,1 비트 기호 s.이 필드 를 32 자리 글자 에 연속 으로 저장 하고 인 코딩 합 니 다.그 중 0:22 비트 는 23 비트 의 소수 f 를 포함한다.23:30 위 는 8 비트 지수 e 를 포함한다.31 위 기호 s 포함.

    하나의 실수 V 는 IEEE 754 기준 에서 V=(-1)s 를 사용 할 수 있다.×M×2E 의 형식 은 다음 과 같다.
  • 기호 s(sign)는 실수 가 양수(s=0)인지 음수(s=1)인지 결정 하고 수치 0 의 기호 위 치 를 특수 처리 합 니 다.
  • 유효 디지털 M(significant)은 이 진 소수 이 고 M 의 수치 범 위 는 1≤M<2 또는 0≤M<1 이다.
  • 지수 E(exponent)는 2 의 멱 으로 부동 소수점 에 가중 하 는 역할 을 한다.
  • 기호 비트
    지수 비트
    소수 자리
    1 위
    8 위
    23 위
    예 를 들 어 IEEE 745 에 따라 1100001000000000000000000000000000000000000000000 의 단일 정밀도 부동 점 의 값 을 계산한다.
    문제 풀이:
    1
    10000010
    00100000000000000000000
    기호 비트
    지수
    끝 수 는 지수 가 전부 0 이 아니 기 때문에 작은 숫자 에 1 을 부가 합 니 다.
    1
    10000010
    1.00100000000000000000000
    -1
    2^(130-127)
    (2^0 + 2^-3)
    결론:-1*(2^0+2^-3)*2^(130-127)=-9
    마찬가지 로 10 진 부동 소수점 0.1 의 바 이 너 리 형식 이 정확 한 지 검증 할 수 있 습 니 다.0.1 은 유한 한 바 이 너 리 로 표시 할 수 없 기 때문에 메모리 에 있 는 표 시 는 반올림(rounding)이후 의 결과 입 니 다.즉,0x3dcccd,10 진 은 0.10000001 이 고 오 차 는 0.0000001 입 니 다.이 로 인해 발생 했 습 니 다.
    진 개념
    우리 가 자주 사용 하 는 진 은 2 진법,8 진법,10 진법 과 16 진법 이 있 는데 10 진법 은 가장 주요 한 표현 형식 이다.
    이 진 은 0 과 1 이다.8 진법 은 0-7 이다.10 진법 은 0-9 이다.16 진법 은 0-9+A-F(대소 문자 모두 가능)입 니 다.
    비트 연산 자
    비트 와(&)
    두 분 다 1 이 고 결 과 는 1 입 니 다.
    
    0&0=0;
    0&1=0;
    1&0=0;
    1&1=1;
    
    사용법:
  • 0:한 단 위 를 0 으로 정리 하려 면 모든 바 이 너 리 를 0 으로 하고 한 여러분 과 0 인 수 치 를 원 하면 결 과 는 0 입 니 다.
  • 한 수의 포 지 셔 닝 을 가 져 옵 니 다.한 개의 수 를 찾 으 면 X 에서 가 져 올 위 치 를 찾 습 니 다.이 수의 대응 위 치 는 1 이 고 나머지 위 치 는 0 입 니 다.이 수 는 X 와'연산'을 하면 X 에서 지정 한 위 치 를 얻 을 수 있 습 니 다.
  • 예 를 들 어 X=1011110 을 설정 하고 X 의 낮은 4 자 리 를 취하 고 X&0000 1111=0000 1110 으로 얻 을 수 있다.
    비트 단위 또는(|)
    하나만 1 이면 결 과 는 1 이다.
    
    0|0=0;
    0|1=1;
    1|0=1;
    1|1=1;
    용법:데이터 의 일부 위치 1 에 자주 사용 합 니 다.X 에 대응 하 는 1 의 위 치 를 찾 으 면 해당 수의 대응 위 치 는 1 이 고 나머지 위 치 는 0 이다.이 수 는 X 와 같 거나 X 의 일부 위 치 를 1 로 만 들 수 있 습 니 다.
    예 를 들 어 X=1010000 의 낮은 4 자리 1 을 X|0000 1111=1011111 로 얻 을 수 있다.
    이 또는 연산(^)
    *두 개의 해당 비트 가'이'(값 이 다 름)이면 이 비트 결 과 는 1 이 고 그렇지 않 으 면 0:*입 니 다.
    
    0^0=0;
    0^1=1;
    1^0=1;
    1^1=0;
    사용법:
  • 특 위 치 를 뒤 집 습 니 다.X 가 뒤 집 을 수 있 는 분 들 을 찾 습 니 다.이 수의 대응 위 치 는 1 이 고 나머지 위 치 는 0 입 니 다.이 수 는 X 와 대응 하 는 위치 가 다 르 거나 얻 을 수 있 습 니 다.예 를 들 어 X=1010 1110 으로 X 를 4 자리 낮 게 뒤 집 고 X^0000 1111=1010 0001 로 얻 을 수 있다
  • .
  • 0 과 다 르 거나 원래 의 값 을 유지 합 니 다.예 를 들 어 X^0000 0000=1010 1110
  • 두 변수 교환 값 의 방법:1.세 번 째 변 수 를 통 해 C=A 를 실현 한다.A=B; B=C; 2.가감 법 을 이용 하여 두 변수의 교환 을 실현 한다.A=A+B;B=A-B;A=A-B; 3.비트 또는 연산 으로 이 루어 집 니 다.하나의 숫자 가 다 르 거나 그 자체 가 0 과 다 르 거나 연산 이 교환 율 에 부합 합 니 다.예 를 들 어 A=A^B;B = A ^ B; A = A ^ B;
  • 역산(~)
    한 이 진수 에 대해 비트 에 따라 반 을 취하 면 0 이 1 로 변 하고 1 이 0 으로 변 합 니 다.~1=0;~0=1;
    왼쪽 이동 연산(<)
    하나의 연산 대상 의 각 이 진 위 치 를 모두 왼쪽으로 몇 자리 옮 깁 니 다(왼쪽 의 이 진 을 버 리 고 오른쪽 에 0 을 보충 합 니 다)2<1=4:10<1=100=4
    왼쪽 이동 시 버 리 는 높 은 자리 가 1 을 포함 하지 않 으 면 왼쪽 마다 한 자 리 를 옮 기 는 것 은 이 숫자 곱 하기 2 에 해당 합 니 다.-14(이 진:1111 0010)<2=(1100 1000)(고위 1 포함,규칙 에 부합 되 지 않 음)
    오른쪽 이동 연산(>)
    한 수의 각 바 이 너 리 를 모두 오른쪽으로 몇 자리 옮 기 고,양수 왼쪽 보 0,마이너스 왼쪽 보 1,오른쪽 버 립 니 다.조작 수 는 오른쪽 마다 한 자 리 를 옮 기 면 이 수 를 2 로 나 누 는 것 과 같다.
    왼쪽 보 0 or 보 1 은 피 이동 수가 플러스 인지 마이너스 인지 에 달 려 있다.
    예:4>>2=1
    예:-14(1111 0010)>>2=-4(1111 1100)
    기호 없 이 오른쪽 이동 연산(>>)
    각 비트 가 오른쪽으로 지정 한 비트 입 니 다.오른쪽으로 이동 한 후 왼쪽 에 튀 어 나 온 자 리 를 0 으로 채 웁 니 다.오른쪽 자 리 를 옮 겨 버 림
    각 비트 가 오른쪽으로 지정 한 비트 입 니 다.오른쪽으로 이동 한 후 왼쪽 에 튀 어 나 온 자 리 를 0 으로 채 웁 니 다.오른쪽 자 리 를 옮 겨 버 림
    예:-14>>2
    즉-14(1111 1111 1111 1111 1111 1111 1111 0010)>>2
    =(0011 1111 1111 1111 1111 1111 1111 1100)
    = 1073741820
    설명:
  • 0x 80000000000 은 수의 16 진법 으로 바 뀌 었 고 2 진법 으로 바 뀌 었 을 때 100000000000000000000000000000000 000
  • 을 나 타 냈 다.
  • 연산 의 우선 순위,이 위 연산 은 논리 연산 보다 높 고>>&
  • 보다 높다.
  • 비트 논리 와 연산 1&1=1,0&1=0
  • >>>기호 없 이 오른쪽으로 이동 하고 부분 을 옮 겨 버 리 고 왼쪽 위 는 0 을 보충 합 니 다.
  • 이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기