Matrix<float> trainData2 = trainData.GetRows(intVar >> 1, intVar, 1);
intVar 정수형 ... 이 코드를 이해하는 데 도움을 주시기 바랍니다.다음 코드를 이해할 수 없습니다.
Matrix<float> trainData2 = trainData.GetRows(intVar >> 1, intVar, 1);
intVar 정수형 ... 이 코드를 이해하는 데 도움을 주시기 바랍니다.다음 코드를 이해할 수 없습니다.
음 >> 1
은 오른쪽 시프트입니다. 이 경우, intVar
의 값을 (효과적으로) 반으로 되돌릴 것입니다 (-ve 숫자가 관련된 일부 경우 제외). 내가 당신의 trainData
이 무엇인지 모르겠지만, 우리는 테이블이나 그 반의 행렬을 만들 것이라고 추측합니까?
이해할 수없는 부분이 intVar >> 1
인 경우 오른쪽의 값이 1 비트 시프트됩니다. 즉, intVar를 2로 나눕니다.
>> 1
은 "2로 나누기"라는 저수준 방식 인 "오른쪽 시프트 1"을 의미합니다.
어쩌면 그게 당신이 필요로하는 단서입니까?
서명 된 타입에 대해 MSB를 존중합니다. 만약 unsigned divide라면, 다음과 같은 ('j'와'k')가 같은 것을 돌려 주길 기대합니다 :'int i = 1 << 31; int j = (int) (((uint) i)/2); int k = i >> 1;'. –
모두에게 매우 고맙습니다. – ranzan