16진수 논리는 모든 곳에서 동일합니다. 숫자 체계에 대한 내용은 여기에서 확인할 수 있습니다. 여기에서 위치 숫자 체계에 대해 읽고 16진수와 2진수에 대한 참조를 확인할 수 있습니다. 시스템 간 변환에 대한 더 많은 예가 있습니다.
모든 비트 연산은 이진 시스템을 위한 것입니다. MQL5의 비트 연산에 대한 자세한 내용은 여기를 참조하세요.
이 문서는 이미 내용을 알고 있을 때 읽으면 좋습니다.)
예를 들어 열거형에 접두사 "0x"를 사용합니다. 제가 알기로는 16진수가 쓰여진다는 뜻이고, "(flag_event & CHARTEVENT_NEWBAR_M1)!=0"이라는 표현식은 "비트 AND" 연산을 사용한다는 뜻입니다. 비트 연산은 이진 시스템을 위한 연산입니다. 그렇다면 & 연산자(이진 시스템용)는 16진수와 어떤 관련이 있나요?
또 다른 질문: 제가 올바르게 이해했다면 "(flag_event & CHARTEVENT_NEWBAR_M1)!=0"이라는 표현은"flag_event !"= CHARTEVENT_NEWBAR_M1"이라는 표현과 같다고 들었습니다. 맞나요? 그렇다면 비트 단위 연산을 사용하는 이유는 무엇인가요?
따라서 머릿속으로 255나 FF를 보고 8이나 0x00000100과 비교해도 차이가 없습니다.
예 델킨:
또 다른 질문입니다. 제가 올바르게 이해했다면 "(flag_event & CHARTEVENT_NEWBAR_M1)!=0"이라는 표현은"flag_event !"= CHARTEVENT_NEWBAR_M1"이라는 표현과 같다고 들었습니다. 맞나요? 그렇다면 왜 비트 단위 연산을 사용하나요?
예, 이 상황에서는 정확히 그런 의미이지만, 비트 연산은 상수로 작업할 때 비트 연산을 사용하는 것이 고전적인 동작이 되었기 때문에 단순한 비교보다 적용 범위가 더 넓고 더 일반적입니다.
예를 들어 열거형에 접두사 "0x"를 사용합니다. 제가 알기로는 16진수가 쓰여진다는 뜻이고, "(flag_event & CHARTEVENT_NEWBAR_M1)!=0" 표현식은"비트 AND 연산"을 사용한다는 뜻입니다. 비트 연산은 이진 시스템을 위한 것입니다. 그렇다면 & 연산자(이진 시스템용)는 16진수와 어떤 관련이 있을까요?
이 모든 시스템은 숫자를 시각적으로 다른 방식으로 표현할 뿐이므로 숫자가 10이면 어디에서나 10입니다. 콤프의 경우, 어떤 체계로 숫자를 쓰든 모든 숫자는 2진수로 변환됩니다. 심지어 제가 쓰는 이 글자들도 바이너리로 변환됩니다. 다른 시스템에서는 주로 명확성을 높이기 위해 또는 습관적으로 숫자를 표기합니다. 어떤 사람들은 더 똑똑해 보이기 위해 그렇게 하기도 합니다. 이 경우 16진수는 글의 간결함과 명확성을 높이기 위해 사용되었습니다. 16진수가 어떻게 형성되는지 알면 가시성이 높아집니다.
또 다른 질문: 제가 올바르게 이해했다면 "(flag_event & CHARTEVENT_NEWBAR_M1)!=0"이라는 표현은"flag_event !"= CHARTEVENT_NEWBAR_M1"이라는 표현과 같다고 생각합니다. 맞나요? 그렇다면 왜 비트 단위 연산을 사용해야 할까요?
아니요, 항상 그런 것은 아닙니다. 플래그_이벤트에 기록된 내용에 따라 달라집니다. CHARTEVENT_NEWBAR_M1만 flag_event에 기록되었다면flag_event = CHARTEVENT_NEWBAR_M1이 됩니다.CHARTEVENT_NEWBAR_M1|CHARTEVENT_NEWBAR_M5가flag_event 에 기록되었다면flag_event != CHARTEVENT_NEWBAR_M1 이됩니다 .그러나 두 경우 모두 (flag_event & CHARTEVENT_NEWBAR_M1)!=0조건이 충족될 것입니다 .
16진수 논리는 모든 곳에서 동일합니다. 숫자 체계에 대한 내용은 여기에서 확인할 수 있습니다. 여기에서 위치 숫자 체계에 대해 읽고 16진수와 2진수에 대한 참조를 확인할 수 있습니다. 시스템 간 변환에 대한 더 많은 예가 있습니다.
모든 비트 연산은 이진 시스템을 위한 것입니다. MQL5의 비트 연산에 대한 자세한 내용은 여기를 참조하세요.
이 문서는 이미 내용을 알고 있을 때 읽으면 좋습니다.)
예를 들어 열거형에 접두사 "0x"를 사용합니다. 제가 알기로는 16진수가 쓰여진다는 뜻이고, "(flag_event & CHARTEVENT_NEWBAR_M1)!=0"이라는 표현식은 "비트 AND" 연산을 사용한다는 뜻입니다. 비트 연산은 이진 시스템을 위한 연산입니다. 그렇다면 & 연산자(이진 시스템용)는 16진수와 어떤 관련이 있나요?
또 다른 질문: 제가 올바르게 이해했다면 "(flag_event & CHARTEVENT_NEWBAR_M1)!=0"이라는 표현은"flag_event !"= CHARTEVENT_NEWBAR_M1"이라는 표현과 같다고 들었습니다. 맞나요? 그렇다면 비트 단위 연산을 사용하는 이유는 무엇인가요?
Вы же пишите, что побитовые операции предназначены для двоичной системы
어차피 CPU 내부의 숫자는 2진수입니다.
따라서 머릿속으로 255나 FF를 보고 8이나 0x00000100과 비교해도 차이가 없습니다.
또 다른 질문입니다. 제가 올바르게 이해했다면 "(flag_event & CHARTEVENT_NEWBAR_M1)!=0"이라는 표현은"flag_event !"= CHARTEVENT_NEWBAR_M1"이라는 표현과 같다고 들었습니다. 맞나요? 그렇다면 왜 비트 단위 연산을 사용하나요?
어차피 CPU 내부의 숫자는 2진수입니다.
따라서 머릿속에서 255 또는 FF를 8 또는 0x00000100과 비교해도 차이가 없습니다.
차이점은 용어상의 차이입니다. 그러나 나는 당신의 말에서 프로그래머에게는 중요하지 않다는 것을 이해했습니다.
예,이 상황에서는 정확히 그 의미이지만 비트 연산은 특히 상수로 작업 할 때 비트 연산을 사용하는 것이 이미 고전적인 동작이 되었기 때문에 단순한 비교보다 적용 범위가 더 넓고 더 일반적입니다.
알겠습니다! 그렇다면 비트 연산에 익숙하지 않은 경우 비교 연산자를 사용하여 표현식을 안전하게 다시 작성할 수 있나요? 설명해 주셔서 감사합니다!
이 글은 이미 내용을 알고 있을 때 읽으면 좋습니다.)
예를 들어 열거형에 접두사 "0x"를 사용합니다. 제가 알기로는 16진수가 쓰여진다는 뜻이고, "(flag_event & CHARTEVENT_NEWBAR_M1)!=0" 표현식은"비트 AND 연산"을 사용한다는 뜻입니다. 비트 연산은 이진 시스템을 위한 것입니다. 그렇다면 & 연산자(이진 시스템용)는 16진수와 어떤 관련이 있을까요?
이 모든 시스템은 숫자를 시각적으로 다른 방식으로 표현할 뿐이므로 숫자가 10이면 어디에서나 10입니다. 콤프의 경우, 어떤 체계로 숫자를 쓰든 모든 숫자는 2진수로 변환됩니다. 심지어 제가 쓰는 이 글자들도 바이너리로 변환됩니다. 다른 시스템에서는 주로 명확성을 높이기 위해 또는 습관적으로 숫자를 표기합니다. 어떤 사람들은 더 똑똑해 보이기 위해 그렇게 하기도 합니다. 이 경우 16진수는 글의 간결함과 명확성을 높이기 위해 사용되었습니다. 16진수가 어떻게 형성되는지 알면 가시성이 높아집니다.
또 다른 질문: 제가 올바르게 이해했다면 "(flag_event & CHARTEVENT_NEWBAR_M1)!=0"이라는 표현은"flag_event !"= CHARTEVENT_NEWBAR_M1"이라는 표현과 같다고 생각합니다. 맞나요? 그렇다면 왜 비트 단위 연산을 사용해야 할까요?
아니요, 항상 그런 것은 아닙니다. 플래그_이벤트에 기록된 내용에 따라 달라집니다. CHARTEVENT_NEWBAR_M1만 flag_event에 기록되었다면flag_event = CHARTEVENT_NEWBAR_M1이 됩니다.CHARTEVENT_NEWBAR_M1|CHARTEVENT_NEWBAR_M5가flag_event 에 기록되었다면flag_event != CHARTEVENT_NEWBAR_M1 이됩니다 .그러나 두 경우 모두 (flag_event & CHARTEVENT_NEWBAR_M1)!=0조건이 충족될 것입니다 .
flag_event 에CHARTEVENT_NEWBAR_M5를작성하면 flag_event != CHARTEVENT_NEWBAR_M1이 됩니다. 하지만 (flag_event & CHARTEVENT_NEWBAR_M1)=0이됩니다.
이러한 트릭을 이해하려면 숫자 체계와 비트 단위 연산을 이해해야 합니다. 그렇지 않으면 죽습니다.
알겠습니다! 즉, 비트 단위 연산을 사용하는 것이 조금 특이한 경우 비교 연산자를 사용하여 표현식을 안전하게 다시 작성할 수 있나요? 명확하게 설명해 주셔서 감사합니다!
언제든지 교체할 수 있지만 추가 계산이 필요할 수 있습니다. 이 경우 주의하세요 :).
알았어요! 질문이 하나 더 있습니다. 16진수를 쓸 때 2의 차수를 사용하는데, 2의 차수를 사용하는 것이 의미가 있나요 아니면 습관의 문제인가요? 즉, 0x00000003, 0x00000009 등과 같은 조합을 사용할 수 있습니까?
알았어요! 질문이 하나 더 있습니다. 16진수를 쓸 때 2진수를 사용하는데, 2진수를 사용하는 것이 의미가 있나요 아니면 습관의 문제인가요? 즉, 0x00000003, 0x00000009 등과 같은 조합을 사용할 수 있나요?
아니요. 비트 단위 연산을 사용하기 때문입니다. 스파이에서는 여러 숫자(이벤트)를 하나의 숫자(플래그_이벤트)에 추가하고, EA에서는 한 숫자에서 여러 숫자를 꺼내 스파이가 어떤 이벤트를 보냈는지 확인합니다. 그 반대의 경우도 마찬가지입니다.
아, 자세히 읽지 않았군요. 네, 하나의 숫자로는 모든 이벤트를 처리하기에 충분하지 않다는 점을 제외하면 가능합니다. 저는 숫자를 2진수로 표현하기 때문에 2진수를 사용하지만 16진수로 작성합니다. 각 비트는 서로 다른 이벤트를 나타냅니다.
기본적으로 price[rates_total-1]은 마지막 미체결 막대의 종가와 같으며, 이는 다시 마지막 매수 호가와 같습니다. 즉, 기본적으로 항상 스파이로부터 매수 호가를 가져옵니다.
강제로 매도 호가를 가져오고 싶다면 이 줄을 다음과 같이 바꾸면 됩니다.
작성자님, 죄송하지만 제가 다 읽지 못한 것 같은데 이 함수가 가격 이벤트뿐만 아니라 예를 들어
지표의 이벤트 또는 다른 상품의 조합 / 변형, 즉 신호가 이미 수신 된 것처럼. 그렇다면 어떻게 구현할 수 있는지.
답변해 주셔서 감사합니다.
기본적으로 price[rates_total-1]은 마지막 미종가 바의 종가와 같으며, 이는 다시 마지막 입찰가와 같습니다. 즉, 기본적으로 스파이로부터 항상 입찰가를 받습니다.
강제로 매도 호가를 가져오려면 예를 들어 이 줄을 다음과 같이 바꾸면 됩니다.
작성자님, 제가 다 읽지 못해서 죄송합니다만, 이 함수가 가격 이벤트뿐만 아니라 예를 들어, 인디케이터 또는 지표의
지표의 이벤트 또는 다른 상품의 조합 / 변형, 즉 신호가 이미 수신 된 것처럼. 그렇다면 어떻게 구현하는지.
답변 주셔서 감사합니다.