개발하면서/etc
-
Swap방법개발하면서/etc 2009. 4. 25. 20:37
#define SWAP(a, b) ((&(a) == &(b)) || \ (((a) -= (b)), ((b) += (a)), ((a) = (b) - (a)))) #define SWAP(a, b) (((a) ^= (b)), ((b) ^= (a)), ((a) ^= (b))) 임시 저장변수 없이 SWAP을 해준다. unsigned int i, j; // positions of bit sequences to swap unsigned int n; // number of consecutive bits in each sequence unsigned int b; // bits to swap reside in b unsigned int r; // bit-swapped result goes here int x = ((b >..
-
String vs StringBuffer개발하면서/etc 2009. 4. 17. 14:31
String str = new String ("Stanford "); str += "Lost!!"; 바이트 코드로 변환하면 아래와 같다. 0 new #7 3 dup 4 ldc #2 6 invokespecial #12 9 astore_1 10 new #8 13 dup 14 aload_1 15 invokestatic #23 18 invokespecial #13 21 ldc #1 23 invokevirtual #15 26 invokevirtual #22 29 astore_1 String '+'연산을 할때 임시저장소 StringBuffer을 만든뒤 append를 한 후 다시 String으로 변환하는 작업을 한다. 바이트 코드로 변환하면 다음과 같다 StringBuffer str = new StringBuffer..
-
빅엔디안&리틀엔디안개발하면서/etc 2009. 4. 11. 23:29
컴퓨터에서 어떤 크기의 데이터를 메모리에 저장할 때 바이트 단위로 나누어 저장한다. 그렇다면 2바이트나 4바이트 크기의 데이터는 어떤 바이트 순서로 저장할까? 먼저 본론부터 말하면 CPU 유형에 따라 바이트 저장순서가 달라질 수 있다. 크게 두 가지로 나뉘는 데 그것이 바로 ‘리틀 엔디안’과 ‘빅 엔디안’ 방식이다. 1. 리틀 엔디안 (Little-Endian) 시작 주소에 하위 바이트부터 기록 ( Intel 80x86 (IBM-PC), DEC VAX, DEC PDP-11 ) 주로 SCO 유닉스나 MS 윈도우가 돌아가는 Intel 프로세서 계열 시스템 ----------------------------------------------------------------------- --------------..
-
vi 사용법개발하면서/etc 2009. 4. 9. 17:21
vi를 사용하지만 더 손쉽게 편집을 하고자 조사를 했다. http://kldp.org/KoreanDoc/html/Vim_Guide-KLDP/Vim_Guide-KLDP.html 의 내용을 출력하려고 정리하였다. http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Development/Env/UsedVim#AEN240 , http://shinlucky.tistory.com/117 에서는 창나누기, 네비게이션만들기등 많은 팁을 얻을수있다. 아는것이 힘이다.
-
패딩비트개발하면서/etc 2009. 4. 2. 23:49
#include #include struct first { char a; int b; char c; int d; }; struct last { char e; char f; int g; int h; }; int main() { struct first kang; struct last han; han.g = 13; han.h = 14; han.e = 'w'; han.f = 'q'; kang.c = 'd'; kang.b = 32; kang.a = 'c'; kang.d = 14; printf("%d\n", sizeof(kang)); printf("%d\n", sizeof(han)); return 0; } kang, han 구조체 모두 char형 2개 int형 2개 선언을 하였는데 왜 크기는 다른것인가? 그것은 바..
-
메모리 구조개발하면서/etc 2009. 4. 1. 23:36
우선 ROM을 보면 텍스트세그먼트가 있다. 실행파일이나, 상수를 저장하는데 RAM에서 실행할수도있고, ROM에서도 실행할수 있다. ROM에서 실행하면 느리므로 RAM에 여유가 있을때 텍스트섹션을 RAM에 로드한다. 또한 데이터 세그먼트에서는 초기화된 전역변수와 정적변수가 저장되어, ROM에 있으면 초기값만 가지고있기때문에 RAM에복사를 한다. bss세그먼트는 초기화 되지 않은 전역,정적변수를 0으로 자동으로 초기화해준다.(스타트업코드에서) 즉 전역변수를 초기화 하지 않으면 ROM데이터 세그먼트에 저장되지 않고 bss 세그먼트에 저장이 되어 ROM을 절약할수 있다. 또한 값이 변하지 않는 전역변수라면 const키워드를 사용하여 상수로 만들어 RAM에 다시 복사되는 것을 막는다. 출처 : 임베디드 프로그래밍..