2012.03.19 03:52, saimhe rašė:
>> turi 'bitset', bet dirba tik su uint'ais.
>
> Oho, visada maniau, kad dirba tik su double mantisės bitais.
C = bitset(A, bit) sets bit position bit in A to 1 (on). A must be an
unsigned integer or an array of unsigned integers, and bit must be a
number between 1 and the number of bits in the unsigned integer class of
A (e.g., 32 for the uint32 class).
>> O man reikia int'ų.
> Su neigiamų skaičių bitais žaisi?
Tenka.
Teigiamiems veikia B=intN(A), C=uintN(B),
> kol A yra leistinose ribose. Tai yra, prieš BITxxx funkcijas konvertuojam
> į uint -- garantuotai tilps.
>
>
>> abs( intN*2( number )) -> bitset( uintN*2( number)) -> 0-intN(number))
>
> Nematlabinė sintaksė -- kaip minimum dvejetai ne vietoje ir intN nepalaiko
> aritmetikos. Tą patį su double įmanoma aprašyt?
matlab'inė būtų tokia:
sign = 0;
numtype = class(tmp);
switch numtype
case 'int8'
tmp_ = uint16(abs(int16(tmp)));
case 'int16'
tmp_ = uint32(abs(int32(tmp)));
case 'int32'
tmp_ = uint64(abs(int64(tmp)));
otherwise
tmp_ = abs(round(tmp));
end
if tmp ~= tmp_
sign = 1;
end
--
ejs