C = bitget(A, bit) range limit

Why the bitget range is only 1-52 bit, not covering 64 bit numbers?
Is a simple way to get around that? If I want to check a bit of any 64 bit number?
>> bitget(hex2dec('FFFFFFFF'),52) = 0
>> bitget(hex2dec('FFFFFFFF'),53)
??? Error using ==> bitget; BIT must be integers between 1 and 52 for double.
>> bitget(hex2dec('1FFFFFFFFFFFFF'),52) =1
>> bitget(hex2dec('20000000000000'),52)
??? Error using ==> bitget; Exceeded value of bitmax.

답변 (1개)

Walter Roberson
Walter Roberson 2012년 6월 1일

1 개 추천

It might depend upon the release you are using, but in current releases bitget is not restricted to 52 bits.
Your major problem at the moment is that hex2dec() outputs a double precision number.
Try
bitget( sscanf('FFFFFFFF', '%lx'), 53)

카테고리

도움말 센터File Exchange에서 Modify Image Colors에 대해 자세히 알아보기

제품

태그

질문:

2012년 6월 1일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by