한 자리의 2진수를 '비트(bit, binary digit)라고 하며, 1비트는 컴퓨터가 값을 저장할 수 있는 최소 단위이다.

보통 비트 8개를 묶어서 바이트(byte)라는 단위로 정의해서 데이터의 기본 단위로 사용한다.

이 외에도 워드(word)라는 단위가 있는데, 워드(word)는 CPU가 한 번에 처리할 수 있는 데이터의 크기를 의미한다.

 

n비트로 표현할 수 있는 10진수

값의 개수 : 2ⁿ

값의 범위 : 0~2ⁿ-1

10진법은 일상생활에서 일반적으로 쓰는 숫자이며, 2진법은 컴퓨터가 쓰는 숫자이다.

사람은 10개의 손가락을 가지고 있고, 컴퓨터는 켜짐 꺼짐 두 가지 상태를 가지고 있다.

 

int age = 25; // 변수 age에 25를 저장

 

25(10진수) > 11001(2진수)

 

2진법은 0과 1로만 데이터를 표현하기 때문에 10진법에 비해 많은 자릿수를 필요로 한다.

2진수 10진수
0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8

 

'JAVA 02강 변수(Variable) > 진법' 카테고리의 다른 글

음수의 2진 표현 - 2의 보수법  (0) 2021.07.11
실수의 진법변환  (0) 2021.07.11
정수의 진법 변환  (0) 2021.07.11
8진법과 16진법(octal base hexadecimal)  (0) 2021.07.11
비트(bit)와 바이트(byte)  (0) 2021.07.11

화면에서 출력할 뿐 아니라 입력도 받을 수 있다.

import java. utill.*;(Scanner클래스를 사용하기 위해 추가)

Scanner scanner = new Scanner (System.in); // Scanner 클래스의 객체를 생성

String input = scanner.nextLine(); // 입력받은 내용을 input에 저장
int num = Integer.parseInt(input); // 입력받은 내용을 int 타입으로 전환

int num = scanner.nextInt(); // 정수를 입력받아서 변수 num에 저장

 

public class PrintfEx2 {
	public static void main(String[] args) {
		String url = "www.codechobo.com";
		
		float f1 = .10f;	// 0.10, 1.0e-1
		float f2 = 1e1f;	// 10.0, 1.0e1, 1.0e+1
		float f3 = 3.14e3f; // 원주율
		double d = 1.23456789;
		
		System.out.printf("f1=%f, %e, %g%n", f1, f1, f1);
		System.out.printf("f2=%f, %e, %g%n", f2, f2, f2);
		System.out.printf("f3=%f, %e, %g%n", f3, f3, f3);

		System.out.printf("d=%f%n", d);
		System.out.printf("d=%14.10f%n", d);

		System.out.printf("[12345678901234567890]%n");
		System.out.printf("[%s]%n)", url);
		System.out.printf("[%20s]%n", url);
		System.out.printf("[%-20s]%n", url);
		System.out.printf("[%.8s]%n", url);
	}

}

 

f1=0.100000, 1.000000e-01, 0.100000
f2=10.000000, 1.000000e+01, 10.0000
f3=3140.000000, 3.140000e+03, 3140.00
d=1.234568
d=  1.2345678900
[12345678901234567890]
[www.codechobo.com]
)[   www.codechobo.com]
[www.codechobo.com   ]
[www.code]

실행결과

 

실수형 값의 출력에 사용되는 지시자는 '% f', '% e', '% g'가 있으며 '% e'는 지수 형태로 출력할 때, '% g'는 값을 간략하게 표현할 때 쓰인다.'% f'는 기본적으로 소수점 아래 6자리까지만 출력하기 때문에 소수점 아래 7자리에서 반올림한다.

화면에 출력할 때 printlon()을 써왔는데 변수의 값을 그대로 출력해서 값을 변환하지 않고는 다른 형식으로 출력할 수 없다.

이럴 때 printf를 쓰면 출력할 수 있다.

printf()는 지시자(specifier)를 통해 변수의 값을 여러가지 형식으로 변환하여 출력하는 기능을 가지고 있다.

 

 

printf()의 지시자 중에서 자주 사용되는 것만 뽑아보면 다음과 같다.

지시자 설명
%b 불리언(boolean) 형식으로 출력
%d 10진(decimal) 정수의 형식으로 출력
%o 8진(octal) 정수의 형식으로 출력
%x, %X 16진(hexa-decimal) 정수의 형식으로 출력
%f 부동(floating-point) 소수점의 형식으로 출력
%e, %E 지수(exponent) 표현식의 형식으로 출력
%c 문자로(character) 출력
%s 문자열()string로 출력

 

상수(constant)는 변수와 마찬가지로 값을 저장할 수 있는 공간이지만,

변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다.

 

변수(variable)	하나의 값을 저장하기 위한 공간
상수(constana) 	값을 한번만 저장할 수 있는 공간
리터럴(literal)	그 자체로 값을 의미하는 것

변수에 타입이 있는 것처럼 리터럴에도 타입이 있다.

종류 리터럴 접미사
논리형 false, true 없음
정수형 123, 0b0101, 077, 0xFF, 100L L
실수형 3.14, 3.0e8, 1.4f, 0x1.0p-1 f, d
문자형 'A', '1', '\N' 없음
문자열 "ABC", "123", "A", "TRUE" 없음

실수형 리터럴에는 접미사를 붙여서 타입을 구분한다.

 

리터럴의 타입은 저장될 변수의 타입과 일치하는 것이 보통이지만,

저장 범위가 넓은 타입 << 좁은 타입을 저장하는 것은 가능하다

반면에

저장범위가 좁은 타입 << 넓은 타입을 저장하려고 하면 컴파일 에러가 발생한다

 

'A'와 같이 작은 따옴표로 문자 하나를 감싼 것을 문자 리터럴이라고 하며

두문자 이상은 "AB"큰따옴표로 감싸며 문자열 리터럴이라고 한다

변수의 타입은 기본형과 참조형이 있다.

 

기본형은 모두 8개의 타입(자료형)이 있으며 다음과 같다.

  1 byte 2 byte 4 byte 8 byte
논리형 boolean      
문자형   char    
정수형 byte short int long
실수형     float double

각 타입별 크기를 나타낸 표

 

분류 타입
논리형 boolean
true와 false 중 하나를 값으로 가지며, 조건식과 논리적 계산에 사용된다.
문자형 char
문자를 저장하는데 사용되며, 변수에 하나의 문자만 저장할 수 있다.
정수형 byte, short, int, long
정수를 저장하는데 사용되며, 주로 int가 사용된다. byte는 이진 데이터를 다룰 때 사용되며, short은 C언어와의 호환을 위해서 추가되었다.
실수형 float, double
실수를 저장하는데 사용되며, 주로 double이 사용된다

분류별 타입

 

자료형 지정 가능한 값의 범위 크기
bit        bite
boolean flase, true 8 1
char '\u000'~'\uffff' 16 2
byte -2⁷~2⁷-1 8 1
short -2¹⁵~2¹⁵-1 16 2
int -2³¹~2³¹-1 32 4
long -2⁶³~2⁶³-1 64 8
float 1.4x10⁻⁴⁵~3.4x10³⁸ 32 4
double 4.9x10⁻³²⁴~3.4x10³⁰⁸ 64 8

각 타입의 변수가 저장할 수 있는 값의 범위

Camel case

단어 전체적으로 소문자를 사용하지만, 각 합성어의 첫 글자만 대문자로 표기한다.

나머지 뒤에 따라붙는 단어들의 앞글자는 모두 대문자로 표기한다.

UpperCamelCase

CamelCase에서, 맨 앞글자를 대문자로 표기하는 것을 뜻한다.

lowerCamelCase

camelCase에서, 맨 앞글자를 소문자로 표기하는 것을 뜻한다.

 

Snake case

각 공백이 밑줄 (_) 문자로 대체되고 각 단어의 첫 글자가 소문자로 쓰인 쓰기 스타일을 나타낸다.

일반적으로 한 문장안에서 모두 대문자로 쓰거나 모두 소문자로 쓴다.

 

Kebab case

위의 스네이크 케이스와 비슷 하지만 밑줄 대신 '-'하이픈 이 공백을 대체하는 데 사용된다. 

 

+ Recent posts