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

 
Previous Post Python 파이썬] signed int를 unsigned형 정수로 변환 캐스팅 함수Python 파이썬, 문자열 합치기, 연결 병합; Merge StringJava 자바] 이진파일 쓰기, 바이너리 파일로 저장 예제 소스; Binary File W...파이썬 Python, 헥사 뷰어, 헥사 덤프 만들기 소스 코드; Hex Viewer, Fi...매스매티카 Mathematica, 정규분포, 가우스 분포 랜덤 난수 발생 함수; Norma...매스매티카 Mathematica, 화면(노트북)지우기 명령, 변수 삭제; Clear Not...매스매티카 Mathematica] 랜덤 난수 출력 함수, 정수 실수; Random Rand...C언어] printf 함수 CR-LF 줄바꿈, 개행문자(Newline), 엔터(Enter)...Perl 펄] 헥사 뷰어, 헥사 덤프 만들기 소스 코드; Hex Viewer, File D...Excel 엑셀] 파이값 상수, 원주율 구하기 함수; PI (파이) Constant

Perl 펄] signed int를 unsigned형 정수로 변환 캐스팅 함수

Wednesday, April 18, 2007

펄의 자료형에는 signed, unsigned의 구분이 없지만, 어떤 마이너스 정수 값을, C언어의 unsigned형처럼 변환해 주어야 할 때가 있습니다.

가령 -1을 unsigned형으로 표현하면 4294967295 가 됩니다.

아래 예제의 unsigned32() 같은 비트 연산 함수를 사용하면 구현할 수 있습니다.

음수 -1을, 4294967295(0xFFFFFFFF)로 변환 예제


파일명: example.pl
#!/usr/bin/perl
use strict; use warnings;


# 변환 테스트 시작
print unsigned32(-1), "\n";          # 4294967295
print unsigned32(-2), "\n";          # 4294967294
print unsigned32(1), "\n";           # 1
print unsigned32(0), "\n";           # 0

print unsigned32(0xFFFFFFFF), "\n";  # 4294967295 (부호없는 32비트 int형의 최대값)
print unsigned32(0x7FFFFFFF), "\n";  # 2147483647 (부호있는 32비트 int형의 최대값)

print unsigned32(0x7FFFFFFF - 1), "\n";  # 2147483646
print unsigned32(0x7FFFFFFF + 1), "\n";  # 2147483648


# 변환 함수
sub unsigned32 {
  return $_[0] & 0xFFFFFFFF;
}



# 이 방법은 문자열로 변환 후, 다시 숫자로 출력하는 방법인데
# 좀 비효율적이라 생각됨
my $i = -1;
$i = sprintf("%u\n", $i);
print $i, "\n";



▶▶ Perl 펄] printf 함수 %u %d 의미/뜻, unsigned int, signed int 변환 출력

참고: ▶▶ C 언어] signed int 를, unsigned int 로 상호 변환, 캐스팅

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