카테고리

asm (27) bootloader_x86_grub (1) C (92) compile (11) config (76) CPP (13) CSS (1) debugging (7) gimp (1) Go (1) html (1) Java (1) JavaScript (1) kernel (19) LibreOffice (3) Linux system progamming (21) MFC (1) opencv (4) OpenGL (1) PHP (1) Python (4) qemu (29) shell (3) socket (7) troubleshooting (2) ubuntu18.04 (2) windows (1)

2018/12/21

long 형의 변수 선언 키워드 크기 확인

#include <stdio.h>

int main(void){
int a;
long b;
long long c;

double e;
long double f;

printf("Size of int = %ld bytes\n", sizeof(a));
printf("Size of long = %ld bytes\n", sizeof(b));
printf("Size of long long = %ld bytes\n", sizeof(c));

printf("Size of double = %ld bytes\n", sizeof(e));
printf("Size of long double = %ld bytes\n", sizeof(f));

return 0;
}

컴파일 변수 형식의 크기 확인

include <stdio.h>

int main(void){
int integerType;
float floatType;
double doubleType;
char characterType;

// Sizeof 연산자는 변수의 크기를 계산하는 데 사용된다
printf("Size of int: %ld bytes\n", sizeof(integerType));
printf("Size of float: %ld bytes\n", sizeof(floatType));
printf("Size of double: %ld bytes\n", sizeof(doubleType));
printf("Size of char: %ld bytes\n", sizeof(characterType));

return 0;
}

8진수 2진수 변환

#include <stdio.h>
#include <math.h>

long long convertOctalToBinary(int octalNumber);
int main(void){
int octalNumber;

printf("Enter an octal number: ");
scanf("%d", &octalNumber);

printf("%d in octal = %lld in binayr", octalNumber, convertOctalToBinary(octalNumber));

return 0;
}

long long convertOctalToBinary(int octalNumber){
int decimalNumber = 0, i = 0;
long long binaryNumber = 0;

while(octalNumber != 0){
decimalNumber += (octalNumber%10) * pow(8, i);
++i;
octalNumber /= 10;
}

i = 1;

while(decimalNumber != 0){
binaryNumber += (decimalNumber % 2) * i;
decimalNumber /= 2;
i *= 10;
}

return binaryNumber;
}

8 진수 입력: 67
2 진수 110111

8진수 10진수 변환

#include <stdio.h>
#include <math.h>

long long convertOctalToDecimal(int octalNumber);
int main(void){
int octalNumber;

printf("Enter an octal number: ");
scanf("%d", &octalNumber);

printf("%d in octal = %lld in decimal\n", octalNumber, convertOctalToDecimal(octalNumber));
return 0;
}

long long convertOctalToDecimal(int octalNumber){
int decimalNumber = 0, i = 0;

while(octalNumber != 0){
decimalNumber += (octalNumber%10) * pow(8,i);
++i;
octalNumber /= 10;
}

i = 1;

return decimalNumber;
}

8 진수를 입력: 116
10 진수 = 78

2진수 10진수 변환

#include <stdio.h>
#include <math.h>

int convertBinaryToOctal(long long binaryNumber);
int main(void){
long long binaryNumber;

printf("Enter a binary number: ");
scanf("%lld", &binaryNumber);

printf("%lld in binary = %d in octal\n", binaryNumber, convertBinaryToOctal(binaryNumber));
return 0;
}

int convertBinaryToOctal(long long binaryNumber){
int octalNumber = 0, decimalNumber = 0, i = 0;

while(binaryNumber != 0){
decimalNumber += (binaryNumber%10) * pow(2,i);
++i;
binaryNumber /= 10;
}

i = 1;

while(decimalNumber != 0){
octalNumber += (decimalNumber %8) * i;
decimalNumber /= 8;
i *= 10;
}

return octalNumber;
}

이진수 입력 : 101001
8 진수로 51

10진수 8진수 변환

#include <stdio.h>
#include <math.h>

int convertDecimalToOctal(int decimalNumber);
int main(void){
int decimalNumber;

printf("Enter a decimal number: ");
scanf("%d", &decimalNumber);

printf("%d in decimal = %d in octal\n\n", decimalNumber, convertDecimalToOctal(decimalNumber));

return 0;
}

int convertDecimalToOctal(int decimalNumber){
int octalNumber = 0, i = 1;

while(decimalNumber != 0){
octalNumber += (decimalNumber % 8) * i;
decimalNumber /= 8;
i *= 10;
}
return octalNumber;
}

십진수를 입력: 78
8 진법에서 116

비트, 바이트, 진법 표현 범위

1. 비트 연산자
AND Gate = &
OR Gate = |
XOR Gate = ^
NOT Gate = ~ -> 단항 연산자.

쉬프트 연산자: <<, >>

2. 컴퓨터 정보 단위

2.1 종류
8bit(비트) = 1byte(바이트) // 8bit=1Byte
1024Byte(2^10 byte) = 1KB(킬로 바이트)
1024KB(2^10 KB) = 1MB(메가 바이트)
1024MB(2^10 MB) = 1GB(기가 바이트)
1024GB(2^10 GB) = 1TB(테라 바이트)

2.2 비트
비트(bit) : 하나의 0 또는 1. 디지털 정보의 최소 단위. 하나의 비트로는 2가지 구분되는 내용을 표현할 수 있다.

1bit:2**0:2x0=1:|-
2bit:2**1:2x1=2:|- |-
3bit:2**2:2x2=4:|- |- |- |-
4bit:2**3:2x2x2=8:|- |- |- |- |- |- |- |-
5bit:2**4:2x2x2x2=16: |- |- |- |- |- |- |- |- |- |- |- |- |- |- |- |-
6bit:2**5:2x2x2x2x2=32: ... |(ON) -(OFF) 32개...
7bit:2**6:2x2x2x2x2x2=64: ... |(ON) -(OFF) 64개...
8bit:2**7:2x2x2x2x2x2x=128: ... |(ON) -(OFF) 128개...

1bit, 스위치 1개로 두가지 상태 표현 : 01
2bit, 스위치 2개로 네가지 상태 표현 : 00, 01, 10, 11

전압 차이의 비트 표현
3.3V: 1
0.0V: 0

2.3 바이트
8bit:1Byte
바이트(byte) : 8비트. 1바이트로는 256가지로 구분되는 내용을 표현할 수 있다.

컴퓨터의 기억장치의 크기를 나타내는 단위
ASCII CODE 표의 문자 하나를 나타낼 수 있는 단위.

2.3.1 ASCII
수와 문자를 짝지어주는 표, ‘A’는 십진수 65에 의해 표현된다.
7비트 ASCII는 128개의 문자 표현, 이후 256가지의 문자를 표현할 수 있도록 8비트로 확장.

2.4 진법
2진법, 8진법, 10진법, 16진법.

2.5 2진법
컴퓨터의 CPU 인식 할 수 있는 단위.
2진법(binary):0과 1이라는 2가지의 숫자의 나열을 통해 수를 표현하는 체계

2.6 8진법
8진법(Octal):  0부터 7까지 총 8 가지의 숫자의 나열을 통해 수를 표현하는 체계

3bit 표현

2.7 10진법
10진법(decimal) : 0부터 9까지 10가지의 숫자의 나열을 통해 수를 표현하는 체계

2.7 16진법
16진법(hexadecimal): 0, 1 ... 9, a, b, c, d, e, f 총 16가지의 숫자의 나열을 통해 수를 표현하는 체계
4bit = 니블(nibble) 표현.
현대의 메모리 0x 주소의 표현 단위

theme 테마 설치

아래 패키지를 설치한 후 로그아웃 후 우분투에서 지원하는 여러개의 테마가 보인다.
$ sudo snap install communitheme

제한 추가 기능 해재. Restricted Extras
$ sudo apt update
$ sudo apt install ubuntu-restricted-extras
$ sudo apt --no-install-recommends install libdvd-pkg
$ sudo dpkg-reconfigure libdvd-pkg

웹 브라우저에 gnome 셜을 설치한다.
$ sudo apt install chrome-gnome-shell