2012-12-20 2 views
1

a와 b 사이에 "AND"연산 (10 진수)을 수행하려고합니다. b의 값은 코드 내에서 결정됩니다. 그 결과, 나는 STH 작성하는 경우처럼 :Java에서 변수에 AND 연산 적용

String g= Integer.toHexString(b); 
int k=a & g; 

나는 오류, 그것이 있어야하기 때문에 STH 같은 :

int k=a & 0xFF; 

어떻게 든 0X는 16 진수 값 전에, 그리고해야 동시에 그 String 유형이 될 수 없습니다. 두 번째 피연산자가 변수가 될 수있는 경우 인터넷에서 예제를 찾지 못했습니다. 수동으로 for 루프를 작성하여 AND 연산을 비트 단위로 적용해야합니까? 아니면 직접적인 해결책이 있습니까? 귀하의 도움에 감사드립니다. b는 이미 정수의 경우

답변

6

, 코드는해야한다 :

int k = a & b;

숫자 숫자는 숫자입니다. 0xFF255의 인간 표현은 & 연산자에 전혀 차이가 없습니다. "Hex Integer"와 컴퓨터에 대한 "Decimal Integer"와 같은 것은 없으며 단지 값입니다. 그것을 쓰는 다른 방법은 인간의 목적에 달려있다.

+0

대단히 감사합니다. 당신 말이 맞아요. – Pegah

+0

@KingsIndian은 "할 일"이 무엇을 의미하는지 이해하지 못합니다. 그것은 단지 연설의 인물입니다. – Affe

3

그냥 이렇게 :

int k = a & b; 

& 연산자를 적용하기 전에 진수로 int을 변환 할 필요가 없습니다. 사실 toHexString()에 의해 반환 된 값이 String이고 & 연산자가 정수에서만 작동하기 때문에 오류입니다. 당신이 당신의 자바 코드에서 진수 문자를 0xFF를 쓸 때

1

, 그것은 그러므로 & b는 충분하고, 문자열로 정수를 변환 아무 소용이 없다 255

문자 쓰기 정수로 동일합니다. 16 진수 표기법은 리터럴을 지정하는 방법입니다.