크기 | 1바이트 | 2바이트 | 4바이트 | 8바이트 |
---|---|---|---|---|
논리형 | boolean | |||
문자형 | char | |||
정수형 | byte | short | int | long |
실수형 | float | double |
int
형의 경우 32bit(4byte)이므로 ~ , 약 10자리 수의 값을 저장상수는 선언과 동시에 초기화해야 한다.
final int MAX_VALUE = 100;
리터럴 타입의 접미사
리터럴 타입은 저장될 변수의 타입과 일치하는 것이 보통이지만, 타입이 달라도 저장 범위가 넓은 타입에 좁은 타입의 값을 저장할 수 있다.
int i = 'A'; // 문자 'A'의 유니코드인 65가 변수 i에 저장된다.
long l = 123; // int보다 long 타입의 범위가 더 넓다.
double d = 3.14f; // float보다 double 타입의 범위가 더 넓다.
문자열 리터럴은 빈 문자열을 허용한다.
string str =""; // 내용이 없는 빈 문자열
%n
을 따로 넣어줘야 한다.지시자 | 설명 |
---|---|
%b | 불리언(boolean) 형식으로 출력 |
%d | 10진(decimal) 정수 형식으로 출력 |
%o | 8진(octal) 정수 형식으로 출력 |
%x | 16진(hexa-decimal) 정수 형식으로 출력 |
%f | 부동 소수점(floating-point) 형식으로 출력 |
%e | 지수(exponent) 표현식 형식으로 출력 |
%c | 문자(character)로 출력 |
%s | 문자열(string)로 출력 |
// String 은 비교불가, char 는 가능
// 입력받은 하나의 문자가 숫자인지 영문자인지 확인한다.
public class OperatorEx25 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("문자를 입력하세요. >");
String input = scanner.nextLine();
char ch = input.charAt(0);
// 입력문자가 숫자인 경우
if ('0' <= ch && ch <= '9') {
System.out.println("숫자입니다.");
}
// 입력문자가 문자인 경우
if (('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z')) {
System.out.println("문자입니다.");
}
}
}
n비트로는 개의 값을 표현할 수 있다.
10진수 -5 를 2진수로 표현하려면 어떻게 해야 할까?
-5의 2의 보수를 구하면 된다.왜? 5의 2진수 0101 과 2의 보수 1011 을 더하면 10000이 되고, 4비트를 넘는 값은 버려지므로 0이 되기 때문이다!
- -5 의 절댓값 5를 구하고 2.이를 2진수 0101로 바꾼 후 3. 2의 보수 1011로 바꾸어주면 된다.
2의 보수 = 1의 보수 + 1
1의 보수는 0을 1로, 1을 0으로 바꾸기만 하면 된다.
정수형 변수를 선언할 때는 int 타입으로 하고, int 의 범위를 넘어서는 수를 다룰 때는 long 을 사용하다.
± M *