Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

bitshift

지정된 개수의 위치만큼 비트 이동

설명

예제

intout = bitshift(A,k)k비트만큼 왼쪽으로 이동된 A를 반환합니다. 이는 2k를 곱하는 것과 같습니다. 음의 k 값은 비트를 오른쪽으로 이동하거나, 2|k|로 나누어 음의 무한대에 가장 가까운 정수로 반올림하는 것과 같습니다. 오버플로 비트는 잘립니다.

  • A가 부호 있는 정수로 구성된 배열이면 bitshift는 산술 이동 결과를 반환하며, k가 음수일 경우 부호 있는 비트를 보존하고 k가 양수일 경우 부호 있는 비트를 보존하지 않습니다.

  • k가 양수이면 MATLAB®에서는 비트를 왼쪽으로 이동하고 오른쪽에 0 비트를 k개 삽입합니다.

  • k가 음수이고 A가 음수가 아니면 MATLAB에서는 비트를 오른쪽으로 이동하고 왼쪽에 0비트를 |k|개 삽입합니다.

  • k가 음수이고 A가 음수이면 MATLAB에서는 비트를 오른쪽으로 이동하고 왼쪽에 1비트를 |k|개 삽입합니다.

예제

intout = bitshift(A,k,assumedtype)A의 유형이 assumedtype인 것으로 가정합니다.

예제

모두 축소

0이 아닌 모든 비트가 오버플로할 때까지 부호 없는 8비트 값의 비트를 반복해서 왼쪽으로 이동합니다.

a = intmax('uint8');
s1 = 'Initial uint8 value %5d is %08s in binary\n';
s2 = 'Shifted uint8 value %5d is %08s in binary\n';
fprintf(s1,a,dec2bin(a))
Initial uint8 value   255 is 11111111 in binary
 for i = 1:8
    a = bitshift(a,1);
    fprintf(s2,a,dec2bin(a))
 end
Shifted uint8 value   254 is 11111110 in binary
Shifted uint8 value   252 is 11111100 in binary
Shifted uint8 value   248 is 11111000 in binary
Shifted uint8 value   240 is 11110000 in binary
Shifted uint8 value   224 is 11100000 in binary
Shifted uint8 value   192 is 11000000 in binary
Shifted uint8 value   128 is 10000000 in binary
Shifted uint8 value     0 is 00000000 in binary

여러 가정 정수형을 사용하여 숫자의 이동을 구합니다.

uintout = bitshift(6,5:7,'uint8')
uintout = 1×3

   192   128     0

intout = bitshift(6,5:7,'int8')
intout = 1×3

   -64  -128     0

입력 인수

모두 축소

입력값으로, 배열로 지정됩니다. Ak와 동일한 크기의 스칼라이거나 배열일 수 있습니다.

  • A가 double형 배열이고 assumedtype이 지정되지 않은 경우 MATLAB에서는 A를 부호 없는 64비트 정수로 처리합니다.

  • assumedtype이 지정된 경우 A의 모든 요소는 assumedtype 범위 내의 정수 값을 가져야 합니다.

데이터형: double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

전환된 비트 수로, 정수 또는 정수형 배열로 지정됩니다. kA와 동일한 크기의 스칼라이거나 배열일 수 있습니다.

데이터형: double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

A의 가정 데이터형으로, 'uint64', 'uint32', 'uint16', 'uint8', 'int64', 'int32', 'int16', 'int8' 중 하나로 지정됩니다.

  • A가 정수형 배열이면 assumedtype에 동일한 정수형이 지정되어야 합니다.

  • A가 double형 배열이면 assumedtype에 모든 유효한 정수형을 지정할 수 있습니다.

데이터형: char | string

출력 인수

모두 축소

이동된 값으로, 배열로 반환됩니다. intoutA와 데이터형이 같습니다.

  • Ak가 스칼라이면 intout도 스칼라입니다.

  • Ak 중 하나가 배열이면 intout은 이 배열과 크기가 같습니다.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.

참고 항목

| | | | | |

R2006a 이전에 개발됨