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
2012-6-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 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!