delphi data type | c++ data type | bytes | range of value |
Byte | unsigned __int8 | (1byte: unsigned) | 0 to 255 |
ShortInt | __int8 | (1byte: signed) | -127 to 127 |
Word | unsigned __int16 | (2byte, unsigned) | 0 to 65,535 |
SmallInt |
__int16 |
(2byte: signed) | -32,768 to 32,767 |
LongWord |
unsigned __int32 |
(4byte: unsigned) | 0 to 4,294,967,295 |
unsigned int | |||
unsigned long | |||
Cardinal |
unsigned __int32 | ||
LongInt |
__int32 |
(4byte: signed) | -2,147,483,648 to 2,147,483,647 |
int | |||
unsigned long | |||
Integer |
__int32 | ||
Int64 | __int64 |
(8byte: signed) | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
long long |
2010년 10월 31일 일요일
델파이와 c++의 데이터 타입표
2010년 10월 28일 목요일
std::map 에서 key를 내가 원하는 놈으로 쓰기
map이란 놈이 조금 당혹스러운 면이 있다..
find 메소드에서 내가 원하는 결과를 얻을려면..
operator< 를 구현해줘야 하는데..
딴 operator가 없으니 가령.. "==" operator..
serial한 값을 넣어서 비교 해줘야 하는것 같다..
내가 능력이 딸려서 그런지는 모르겠지만..
struct net_event_key
{
DWORD _type;
WORD _lParam;
WORD _wParam;
explicit net_event_key( DWORD type, WORD lparam, WORD wparam ) {
_type = type;
_lParam = lparam;
_wParam = wparam;
}
bool operator<( const net_event_key& param ) const {
unsigned __int64 lvalue = 0;
lvalue = (unsigned __int64 ) _type << (4 * 8);
lvalue |= _lParam << ( 2 * 8 );
lvalue |= _wParam;
unsigned __int64 rvalue = 0;
rvalue = (unsigned __int64 ) param._type << (4 * 8);
rvalue |= param._lParam << ( 2 * 8 );
rvalue |= param._wParam;
return lvalue < rvalue;
}
};
이런 식으로 해주니 된다..
2010년 10월 19일 화요일
delphi의 TDateTime
새로 입사한 회사에서 쓰는거라 delphi를 쓰긴 쓰지만..
이건 머.. ㅡㅡa
아놔..
사족은 닥치고.. TDateTime은 1899년 12월 30일 12:00 AM부터 날짜와 시간을 담고 있다.
1은 하루이고 소숫점이 시간값이다.
24시간 = 1
1시간 = 0.04166666666667
1분 = 6.944444444444e-4
1초 = 1.157407407407e-5
짜증난다 정말.. -_-;;