database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
ㆍSybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Sybase Q&A 2085 게시물 읽기
No. 2085
비트연산 수행결과가 서버에 따라 차이가 있습니다.
작성자
강성주(enhars)
작성일
2007-11-07 10:03
조회수
6,545

select @@version

select (130 & 0x02)

select (2 & 0x02)

select (2 & 2)


Adaptive Server Enterprise/12.5.0.3/EBF 10696 IR/P/Linux Intel/Linux 2.4.7-10smp i686/rel12503/1915/32-bit/OPT/Thu Jan 23 22:56:39 2003                                                                                                                                   

-----------

          2            

-----------

          2            

-----------

          2 


Adaptive Server Enterprise/12.5.3/EBF 13327 ESD#7/P/RS6000/AIX 5.1/ase1253/1951/64-bit/FBO/Fri Mar 24 04:52:26 2006                                                                                                                                                        

-----------

          0            

-----------

          0            

-----------

          2  


integer 로 되어 있는 상태값 필드에서 특정 비트의 T/F 값을 체크 하여야 하는데


이게 운영서버마다 조금씩 차이가 있네요. 제 생각으론 위쪽의 결과가 나와야 하는게


맞는것 같은데, 아래쪽의 결과가 나오는 서버도 있습니다.


결과값이 어떤것이 맞는지, 수행결과가 다른 이유가 궁금합니다.

이 글에 대한 댓글이 총 4건 있습니다.

HP 결과입니다.


대략 이게 맞을것 같네요


SUN,HP,AIX는 아래의 결과가 나오고, linux,NT,Digital등은 리눅스 결과와 동일할것으로 추정됩니다.~~



진짜 그럴라나?

 ------------------------------------------------------------------------------------------------------------
 Adaptive Server Enterprise/12.5.4/EBF 14113 ESD#4/P/HP9000-879/HP-UX B.11.11/ase1254/2034/64-bit/FBO/Thu Nov

(1 row affected)

 -----------
           0

(1 row affected)

 -----------
           0

(1 row affected)

 -----------
           2

지연님이 2007-11-07 17:22에 작성한 댓글입니다. Edit

ㅋㅋ

아니네요



위의 결과는 무조건 
0
0
2
가 나와야 하네요~~



그냥 &0x는 &0으로 인식해서 그런거네요..
그러므로

아래와 같이 고쳐서 테스트 해야 합니다~

1> select @@version


select (130 & hextoint("0x02"))

2> 3> 4> 5> 6>
7> select (2 &  hextoint("0x02"))


8> 9> s10> elect (2 & 2)


11> 12> 13> go

 ------------------------------------------------------------------------------------------------------------
 Adaptive Server Enterprise/12.5.4/EBF 14113 ESD#4/P/HP9000-879/HP-UX B.11.11/ase1254/2034/64-bit/FBO/Thu Nov

(1 row affected)

 -----------
           2

(1 row affected)

 -----------
           2

(1 row affected)

 -----------
           2

(1 row affected)

지연님이 2007-11-07 17:30에 작성한 댓글입니다. Edit

맞습니다.


small radian을 사용하는 NT,linux,disgital등의 OS에서는


2
2
2
가나오고


Big radian을 사용하는 HP,SUN,AIX등에서는 

0
0
2
가 나오네요


좀더 정확하게 하기위해

hextoint function을 사용하시기 바랍니다~~


아님 전부 binary로 하시던가요~


수고하세요


이상 허접 테스트였습니다

지연님이 2007-11-07 17:34에 작성한 댓글입니다. Edit

지연님 감사합니다. 덕분에 해결되었습니다.

강성주(enhars)님이 2007-11-08 14:37에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
2089DB에 추가된 로그디바이스 삭제 [1]
로그
2007-11-09
6975
2088DB Devices 에 생성한 dat파일의.. [1]
한상목
2007-11-09
6780
2086Sybase ASE 특정테이블 감시.... [3]
김성한
2007-11-07
6895
2085비트연산 수행결과가 서버에 따라 차이가 있습니다. [4]
강성주
2007-11-07
6545
2084sybase 정기세미나 안내
지연
2007-11-06
7116
2083query tool을 이용해서 update 문을 수행시~ [1]
sybase_admin
2007-11-06
6930
2082자료형에관해.. [2]
초보자
2007-11-02
6965
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.039초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다