C/C++


  1. string wstring 상호 변환
  2. C 구현 Random 함수
  3. /boost/regex/한글 추출
  4. /boost/regex/실용 정규식



1. Short coding #

1.1. float 소수점 2자리만 추출 #

int i=f<0?-1:1*(f-(int)f)*100;

2. 기타 #

2.1. 비트/바이트 순서 바꾸기 #


32비트 value
0001 ... 0110 0111 1000

0001 1110 0110 ... 1000

unsigned int convert_order32(unsigned int before)
{
   int i;
   unsigned int r = 0;

   for(i = 0; i < 32; ++i)
   {
     if(before&1<<i)
     {
       r=r|1<<(31-i)/4*4+i%4;
     }
   }

   return r;
}

바이트 순서 바꾸기
0x12345678 -> 0x21436587
r=r|1<<(i/4%2?(i/4-1)*4+i%4:(i/4+1)*4+i%4);
0x12345678 -> 0x78563412
r=r|1<<(i/4%2?(7-(i/4-1))*4+i%4:(7-(i/4+1))*4+i%4);



 

이 글에는 0 개의 댓글이 있습니다.