well 부호없는 short의 비트가 설정되어 있는지 여부를 확인하십시오. 그래서 x의 비트 i가 설정되면 1을, 그렇지 않으면 0을 반환합니다. 또한 비트가 오른쪽에서 0으로 번호 매겨 졌음을 기억해야합니다 : b15b14b13 ... b3b2b1b0. 글쎄, 그런 식으로 시도했지만 작동하지 않는다고 생각합니다 ... 어떤 도움을 주시면 감사하겠습니다.부호없는 short의 비트가 설정되어 있는지 여부를 확인하십시오.
답변
short is_set(unsigned short x, int bit) {
return ((1 << bit) & x);
}
발터는 잘 솔루션이 올바르지 것이 아니라, 왜 당신이 그것을 실패 사례를 게시해야 작동하지 않는 답변을 보인다. @Eric 및 @MadHatter에 의해 제안
short is_set(unsigned short x, int bit) {
return (!!((1u << bit) & x));
}
short is_set(unsigned short x, int bit) {
return (x >> bit) & 1;
}
이것은 OP의 "x의 비트 1이 반환 될 경우 1을 반환하고 그렇지 않으면 0을"충족하지 않습니다. – chux
@chux : 수정했습니다! –
무엇이 !! 해야 할 것? – Marichyasana
는 테스트 케이스를 만들기 : 다음이 방법을 시도하고 관찰을 공유까지
는void Test(short x, int i, int expect) {
printf("Expect %d, is_set(%#x,%d) --> ", expect, x,i);
fflush(stdout); // Flush output as is_set() may fail.
int result = is_set(x,i);
printf(" %d, %s\n", result, expect == result ? "Success" : "Fail");
}
void Tests(void) {
Test(0x0000, 0, 0);
Test(0x0001, 0, 1);
Test(0x1234, 2, 1);
Test(0x1234, 3, 0);
// etc.
}
Expect 0, is_set(0,0) --> 0, Success
Expect 1, is_set(0x1,0) --> 1, Success
Expect 1, is_set(0x1234,2) --> 1, Success
Expect 0, is_set(0x1234,3) --> 0, Success
이 기능은 제대로 "반환을 수행 1이면 x의 비트 i가 설정되고 그렇지 않으면 0이됩니다.
사소한 : 요구 사항의 코드 이름과 일치하십시오.
// Return 1 iff bit i in x is set, 0 otherwise
// v
short is_set(unsigned short x, int i) {
마이너 : 반환 값은 별도로 명시하지 않는 한이 int
을 의미한다 1이며, 0.
int is_set(unsigned short x, int i) {
- 1. (8051) 단일 비트가 설정되어 있는지 확인하십시오.
- 2. 특정 비트가 설정되어 있는지 확인
- 3. 프롤로그 : 비트가 설정되어 있는지 테스트
- 4. 비트가 부호없는 정수로 설정되어 있는지 여부를 집합 적으로 확인하는 방법은 무엇입니까?
- 5. 변수가 설정되어 있는지 확인하십시오.
- 6. Java : 특정 비트가 긴 비트로 설정되어 있는지 확인하십시오.
- 7. 구조체의 부호없는 정수 값이 설정되어 있는지 확인 여부를
- 8. 홀수 개의 비트가 설정되어 있는지 확인하는 빠른 방법은 무엇입니까?
- 9. 어떤 비트가 설정되어 있는지 확인하는 방법은 무엇입니까?
- 10. 세션 변수가 설정되어 있는지 확인하십시오
- 11. 배쉬에서 트랩이 설정되어 있는지 확인하십시오.
- 12. Javascript Array가 설정되어 있는지 확인하십시오.
- 13. 배경 이미지가 설정되어 있는지 확인하십시오.
- 14. HLSL sampler가 설정되어 있는지 확인하십시오.
- 15. DST가 특정 날짜와 시간으로 설정되어 있는지 확인하십시오.
- 16. Django : 설정 변수가 설정되어 있는지 확인하십시오.
- 17. SharePoint 사이트가 있는지 여부를 확인하십시오.
- 18. 비트가 정수 데이터 형식으로 설정되어 있는지 확인하는 가장 빠른 방법
- 19. linux kernel 끈적 끈적한 비트가 설정되어 있는지 확인하는 방법
- 20. 비트가 16 진수 문자열로 설정되어 있는지 확인하는 방법은 무엇입니까?
- 21. SenTestingKit을 이용한 단위 테스트 : 설정되어 있는지 확인하십시오.
- 22. 함수 매개 변수가 설정되어 있는지 확인하십시오.
- 23. 파일 필드가 codeigniter로 설정되어 있는지 확인하십시오.
- 24. jQuery에서 max-width가 설정되어 있는지 확인하십시오.
- 25. PHP mysql이 연결이 이미 설정되어 있는지 확인하십시오.
- 26. 텍스트 속성이 숨김으로 설정되어 있는지 확인하십시오.
- 27. PostgreSQL의 역할이 암호가 설정되어 있는지 확인하십시오.
- 28. 요청 속성이 jQuery로 설정되어 있는지 확인하십시오.
- 29. 코어 데이터에 속성이 설정되어 있는지 확인하십시오.
- 30. 정규식으로 URL에 언어가 설정되어 있는지 확인하십시오.
왜 솔루션이 올바르지 않다고 생각하십니까? – crockeea
이 기능을 어떻게 확인할 수 있습니까?! @Eric – Manuel
@Manuel 당신의 대답은 맞습니다. – BlackMamba