컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post Perl 펄 비트연산] 특정 비트 쓰기, 1비트씩 저장 함수; Set a Bit, Save...Perl 펄 비트 연산] 특정 비트 읽기, 1비트씩 추출; Get a Bit, Read a...Perl 펄] printf 함수 %u %d 의미/뜻, unsigned int, signed...Perl 펄] 32비트 16진수 헥사(Hex) 난수; 32bit 2진수 Random(랜덤)...Mathematica Hello World, 매스매티카 헬로 월드 출력PHP, CLI 예제] Hello World! 출력 소스 코드; 헬로 월드PHP CLI 예제] 명령행 옵션, argc argv 매개 변수 구하기Perl 펄] 화면 지우기 함수, Clear Screen CLS리눅스/유닉스(Linux, Unix)에서 Perl(펄) 스크립트 실행 방법Vim Vi, 도스 텍스트를 유닉스 텍스트로 개행문자 변환; DOS CR-LF to Uni...

Perl 펄 비트연산] 특정 비트 반전, 1비트씩 역전 함수; Reverse a Bit Function

Sunday, May 06, 2007

정수의 특정 비트의 값을 다른 값으로 뒤집는 방법입니다. 지정한 몇번째 비트의 값이 0이라면 1로, 1이라면 0으로 바꾸는 것입니다.

아래 예제의 함수를
reverseAbit(정수, n번째비트)
이런 형식으로 사용하면 됩니다.

16비트 정수, n번째 비트 값 뒤집기 예제


#!/usr/bin/perl
use strict; use warnings;

  my $num = 0xFF;
  printf("                   %016b <= 원본 숫자\n", $num);


  print "\n";


  for (my $i = 0; $i <= 15; $i++) {
    my $temp = reverseAbit($num, $i);
    printf("[%2d번째 비트 토글] %016b = %10u\n", $i, $temp, $temp);
  }



# $x 의 $n번째 비트의 값을 뒤집는 함수
sub reverseAbit { # reversebit()
  my $x = shift;
  my $n = shift;

  return $x ^= (1 << $n);
}



실행 결과 화면:
D:\Z>example.pl
                   0000000011111111 <= 원본 숫자

[ 0번째 비트 토글] 0000000011111110 =        254
[ 1번째 비트 토글] 0000000011111101 =        253
[ 2번째 비트 토글] 0000000011111011 =        251
[ 3번째 비트 토글] 0000000011110111 =        247
[ 4번째 비트 토글] 0000000011101111 =        239
[ 5번째 비트 토글] 0000000011011111 =        223
[ 6번째 비트 토글] 0000000010111111 =        191
[ 7번째 비트 토글] 0000000001111111 =        127
[ 8번째 비트 토글] 0000000111111111 =        511
[ 9번째 비트 토글] 0000001011111111 =        767
[10번째 비트 토글] 0000010011111111 =       1279
[11번째 비트 토글] 0000100011111111 =       2303
[12번째 비트 토글] 0001000011111111 =       4351
[13번째 비트 토글] 0010000011111111 =       8447
[14번째 비트 토글] 0100000011111111 =      16639
[15번째 비트 토글] 1000000011111111 =      33023

D:\Z>

맨 우측 비트가 0번 비트입니다.


▶▶ Perl 펄 비트 연산] 특정 비트 읽기, 1비트씩 추출; Get a Bit, Read a Bit

▶▶ Perl 펄 비트연산] 특정 비트 쓰기, 1비트씩 저장 함수; Set a Bit, Save a Bit

▶▶ Perl 펄 비트연산] 특정 비트 개수 세기, 1인 비트, 0인 비트 수; Count Bits Function

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top