2014-12-24 3 views
3

물결표 연산자는 Java에서 어떻게 작동하며 그 기능은 무엇입니까?"~"(물결표) 연산자는 Java에서 무엇을합니까?

그러나 Java에서 몇 년 동안 코드를 작성했지만 자바를 사용하여 비트 연산을 사용하지 않았습니다. 비트 연산자에 대해 읽기 시작했을 때 물결표는 재미있어 보였습니다. 나는 작은 경험을 나누고 싶었습니다.

답변

14

Java에서 "~"(물결 표시) 연산자에 대한 인터넷 검색은 초보자가 문제없이 이해할 수있는 명확한 설명을 제공하지 않았습니다. 또한 Java SE6 이후 비트 시험 운영자에 대한 질문을 Java 시험에서 제외하는 것은 일부 사람들이 비트 단위 작업을 배우지 않는 이유입니다. 필자의 개인적인 의견은 모든 프로그래머가 분명히 비트 연산을 이해하고 소프트웨어 개발에 사용하는 방법을 알고 있어야한다는 것입니다.

"~"(틸드) 연산자는 비트 단위가 아닙니다. 무슨 뜻이에요? 의 코드의 몇 가지를 작성하고 그것을 시도하자

public class Tilde 
{ 
    public static void main(String args[]) { 
     int x=3; 
     int y=~x; 

     System.out.println(x); 
     System.out.println(y);  
    } 
} 

결과가 될 것입니다 :

-4 

방법 3 변형 -4? 내가 물결표는 비트 현명한 NOT 연산자입니다. 따라서 작업은 이진 표현으로 수행됩니다. 3의 이진 표현은 11입니다. 우리는 x를 int로 선언하고 theres는 메모리의 x에 대해 4 바이트 (32 비트)로 할당됩니다. 3 메모리에서의 표현이다 : 우리는 3 물결표 연산자를 수행 할 때, 3의 이진 표현에 모두 제로가 1이되고 모든 사람이 0입니다

00000000000000000000000000000011 

:에서

11111111111111111111111111111100 

JVM의 구현은 -4와 같습니다. (myblog에서) http://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html

원본 게시물 : : 당신이 물결 작업을 수행하려고 할 경우에 -4 당신은 3

소스를 얻을 수 있습니다 http://blog.adil.az/post/55588073707/what-tilde-operator-does-in-java