你好,请问matlab中的位函数bitshift(A,k,n)如何使用?不是很懂!

请给个例子。在线等答案,谢谢!
bitshift(A,k)我知道的,请解释一下bitshift(A,k,n),你写的例子请做说明好么,没有看明白。谢谢

12345678_0001
浏览 420回答 2
2回答

慕姐8265434

k是移位的位数,n是有用位数!clc;a=[1 3 5 7];a1=bitshift(a,3)dec2bin(a1)a2=bitshift(a,3,1)dec2bin(a2)a2=bitshift(a,3,2)dec2bin(a2)a2=bitshift(a,3,3)dec2bin(a2)a2=bitshift(a,3,4)dec2bin(a2)a2=bitshift(a,3,5)dec2bin(a2)

慕勒3428872

k是移位的位数,n是有用位数!clc;a=[1 3 5 7];a1=bitshift(a,3)dec2bin(a1)a2=bitshift(a,3,1)dec2bin(a2)a2=bitshift(a,3,2)dec2bin(a2)a2=bitshift(a,3,3)dec2bin(a2)a2=bitshift(a,3,4)dec2bin(a2)a2=bitshift(a,3,5)dec2biMatlab的两种移位运算:1) circshift 矩阵移位circshift :Shift array circularlySyntax : B = circshift(A,shiftsize)Description :B = circshift(A,shiftsize) circularly shifts the values in the array, A, by shiftsize elements. shiftsize is a vector of integer scalars where the n-th element specifies the shift amount for the n-th dimension of array A. If an element in shiftsize is positive, the values of A are shifted down (or to the right). If it is negative, the values of A are shifted up (or to the left). If it is 0, the values in that dimension are not shifted.Example :Circularly shift first dimension values down by 1.A = [ 1 2 3;4 5 6; 7 8 9]A =1 2 34 5 67 8 9B = circshift(A,1)B =7 8 91 2 34 5 6Circularly shift first dimension values down by 1 and second dimension values to the left by 1.B = circshift(A,[1 -1]);B =8 9 72 3 15 6 42)bitshift 位移位bitshift :Shift bits specified number of placesSyntax :C = bitshift(A, k)C = bitshift(A, k, n)Description :C = bitshift(A, k) returns the value of A shifted by k bits. Input argument A must be an unsigned integer or an array of unsigned integers. Shifting by k is the same as multiplication by 2^k. Negative values of k are allowed and this corresponds to shifting to the right, or dividing by 2^abs(k) and truncating to an integer. If the shift causes C to overflow the number of bits in the unsigned integer class of A, then the overflowing bits are dropped.C = bitshift(A, k, n) causes any bits that overflow n bits to be dropped. The value of n must be less than or equal to the length in bits of the unsigned integer class of A (e.g., n <= 32 for uint32).Instead of using bitshift(A, k, 8) or another power of 2 for n, consider using bitshift(uint8(A), k) or the appropriate unsigned integer class for A.Examples:Example 1Shifting 1100 (12, decimal) to the left two bits yields 110000 (48, decimal).C = bitshift(12, 2)C =48Example 2Repeatedly shift the bits of an unsigned 16 bit value to the left until all the nonzero bits overflow. Track the progress in binary:a = intmax('uint16');disp(sprintf( ...'Initial uint16 value %5d is %16s in binary', ...a, dec2bin(a)))for k = 1:16a = bitshift(a, 1);disp(sprintf( ...'Shifted uint16 value %5d is %16s in binary',...a, dec2bin(a)))endn(a2)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go