chapter 2 ๋ณ€์ˆ˜ part2

JMGยท2022๋…„ 1์›” 5์ผ
0

์ž๋ฐ”์˜ ์ •์„

๋ชฉ๋ก ๋ณด๊ธฐ
4/13

๐Ÿ“– ๊ธฐ๋ณธํ˜•์˜ ์ข…๋ฅ˜์™€ ํฌ๊ธฐ

์ข…๋ฅ˜1byte2byte4byte8byte
๋…ผ๋ฆฌํ˜•boolean
๋ฌธ์žํ˜•char
์ •์ˆ˜ํ˜•byteshortintlong
์‹ค์ˆ˜ํ˜•floatdouble

๐Ÿ“– ๊ธฐ๋ณธํ˜•์˜ ํ‘œํ˜„๋ฒ”์œ„

n๋น„ํŠธ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ๊ฐœ์ˆ˜ : 2^n๊ฐœ
n๋น„ํŠธ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€ํ˜ธ์—†๋Š” ์ •์ˆ˜์˜ ๋ฒ”์œ„ 0~(2^n)-1
n๋น„ํŠธ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€ํ˜ธ์žˆ๋Š” ์ •์ˆ˜์˜ ๋ฒ”์œ„ -2^(n-1)~2^(n-1)-1

์ตœ์ƒ์œ„์ˆ˜์—์„œ 1์„ ๋นผ๋Š” ์ด์œ  ์–‘์ˆ˜์—์„œ 0์„ ํฌํ•จํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋ถ€ํ˜ธ์ˆซ์ž
0(+๋ถ€ํ˜ธ)1111111(127)
00000000(0)
1(-๋ถ€ํ˜ธ)1111111(-1)
1(-๋ถ€ํ˜ธ)0000000(-128)

๐Ÿ“์ •์ˆ˜ํ˜•์˜ ์ตœ์†Œ๊ฐ’๊ณผ ์ตœ๋Œ€๊ฐ’

์ž๋ฃŒํ˜•์ตœ์†Œ๊ฐ’๊ณผ ์ตœ๋Œ€๊ฐ’
byte-2^7 ~ (2^7)-1 = -128 ~ 127
short-2^15 ~ (2^15)-1 = -32768 ~ 32767
char0 ~ (2^16)-1 = 0~65535
int-2^31 ~ (2^31)-1 = ์•ฝ -20์–ต ~ 20์–ต
long-2^63 ~ (2^63)-1 = ์•ฝ 800๊ฒฝ ~ 800๊ฒฝ

๐Ÿ“์‹ค์ˆ˜ํ˜•์˜ ์ตœ์†Œ๊ฐ’๊ณผ ์ตœ๋Œ€๊ฐ’

์ž๋ฃŒํ˜•์ €์žฅ๊ฐ€๋Šฅํ•œ ๊ฐ’์˜๋ฒ”์œ„์ •๋ฐ€๋„ํฌ๊ธฐ
float1.4E-45~2.4E387์ž๋ฆฌ4byte
double4.9E-324~1.3E30815์ž๋ฆฌ8byte

*E๋Š” 10์„ ์˜๋ฏธ

โ€ป์‚ฌ์‹ค ์ด๋ฒˆํŒŒํŠธ์—์„œ ๋ณด์ˆ˜์˜ ๊ฐœ๋…๊ณผ ๋ถ€๋™์†Œ์ˆ˜์ ์— ๋Œ€ํ•ด ๊นŠ๊ฒŒ ๋‹ค๋ค„์•ผํ•˜๋‚˜ ์‹œ๊ฐ„์ƒ ์ƒ๋žตํ•˜๊ณ  ๊ดœ์ฐฎ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ์ž๋ฃŒ์˜ ๋งํฌ๋ฅผ ์˜ฌ๋ ค๋†“๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ณด์ˆ˜์˜ ๊ฐœ๋…
https://ndb796.tistory.com/4
๋ถ€๋™์†Œ์ˆ˜์ 
https://steemit.com/kr/@modolee/floating-point

๐Ÿ“– ํ˜•์‹ํ™”๋œ ์ถœ๋ ฅ - printf()

๐Ÿ“Œ println()์˜ ๋‹จ์ 

  • ์ถœ๋ ฅํ˜•์‹ ์ง€์ •๋ถˆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ์ •์ˆ˜๋ฅผ 10์ง„์ˆ˜๋กœ๋งŒ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ printf()์˜ ์ง€์‹œ์ž

์ง€์‹œ์ž์„ค๋ช…
%bbooleanํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ
%ddecimal(10์ง„๋ฒ•) ์ •์ˆ˜์˜ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ
%ooctal(8์ง„๋ฒ•) ์ •์ˆ˜์˜ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ
%x, %Xhexa-demical(16์ง„๋ฒ•) ์ •์ˆ˜์˜ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ
%ffloating-point(๋ถ€๋™์†Œ์ˆ˜์ )์˜ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ
%e, %Eexponent(์ง€์ˆ˜) ํ‘œํ˜„์‹์˜ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ
%ccharacter๋กœ ์ถœ๋ ฅ
%sstring์œผ๋กœ ์ถœ๋ ฅ
public class Hello {
	public static void main(String[] args) {
       
		System.out.printf("%.2f \n", 10.0/3); // 3.33 ์†Œ์ˆ˜์  2์งธ์ž๋ฆฌ๊นŒ์ง€๋งŒ ์ถœ๋ ฅ
		System.out.printf("%d \n", 0x1A); // 26 10์ง„์ˆ˜๋กœ ์ถœ๋ ฅ
		System.out.printf("%X \n", 0x1A); // 1A 16์ง„์ˆ˜๋กœ ์ถœ๋ ฅ
       
       		System.out.printf("age:%d year:%d\n", 14, 2017); // ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์ถœ๋ ฅ๊ฐ€๋Šฅ
               
              	//8์ง„์ˆ˜์™€ 16์ง„์ˆ˜๋ฅผ ์ ‘๋‘์‚ฌ ๋ถ™์ด๊ธฐ
		System.out.printf("%#o \n", 15); //017
		System.out.printf("%#x \n", 15); //0xf
		System.out.printf("%#X \n", 15); //0xF

		//์‹ค์ˆ˜์ถœ๋ ฅ์„ ์œ„ํ•œ ์ง€์‹œ์ž %f, ์ง€์ˆ˜ํ˜•์‹ %e
		float f = 123.4567890f;
		System.out.printf("%f \n", f); //123.456787
		System.out.printf("%e \n", f); //1.23468e+02
		
	}
}

๐Ÿ“Œ ์ถœ๋ ฅ์ž๋ฆฌ์ˆ˜ ์ง€์ •

printf()์˜ ์ง€์‹œ์ž๋Š” ์ˆซ์ž์˜ต์…˜์„ ๋„ฃ์–ด์„œ ์ถœ๋ ฅ ์ž๋ฆฌ์ˆ˜๋„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

public class Hello {

	public static void main(String[] args) {
		
		//์ •์ˆ˜์˜ ์ถœ๋ ฅ์ž๋ฆฌ์ˆ˜ ์ง€์ •
		System.out.printf("[%5d] \n", 10); // [   10]
		System.out.printf("[%-5d] \n", 10); // [10   ] //์™ผ์ชฝ์ •๋ ฌ
		System.out.printf("[%05d] \n", 10); // [00010] //๊ณต๋ฐฑ๋Œ€์‹  0์œผ๋กœ ์ฑ„์›€
		
		double d = 1.234123456789;
		//์‹ค์ˆ˜์˜ ์ถœ๋ ฅ์ž๋ฆฌ์ˆ˜ ์ง€์ •
		System.out.printf("%10.5f \n", d); // 1.23412 10์€ ์†Œ์ˆ˜์ ์„ ํฌํ•จํ•œ ์ „์ฒด์ž๋ฆฌ์ˆ˜, 5๋Š” ์†Œ์ˆ˜์  ์ž๋ฆฌ์ˆ˜
		
		//๋ฌธ์ž์—ด์˜ ์ถœ๋ ฅ์ž๋ฆฌ์ˆ˜ ์ง€์ •
		System.out.printf("[%s] \n", "www.codechobo.com"); //[www.codechobo.com] ๊ธฐ๋ณธ
		System.out.printf("[%20s] \n", "www.codechobo.com"); //[   www.codechobo.com] ์˜ค๋ฅธ์ชฝ์ •๋ ฌ
		System.out.printf("[%-20s] \n", "www.codechobo.com"); //[www.codechobo.com   ] ์™ผ์ชฝ์ •๋ ฌ
		System.out.printf("[%.10s] \n", "www.codechobo.com"); //[www.codech] .์€ ์™ผ์ชฝ์„ ๊ธฐ์ค€์œผ๋กœ ์ง€์ •๋œ ์ž๋ฆฌ์ˆ˜๊นŒ์ง€๋งŒ ์ถœ๋ ฅ
	}
}

๐Ÿ“– ํ™”๋ฉด์—์„œ ์ž…๋ ฅ๋ฐ›๊ธฐ

๐Ÿ“Œ Scanner๋ž€?

ํ™”๋ฉด์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค
Scanner๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด import๋ฌธ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ถ”๊ฐ€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

import java.util.Scanner;

์˜ˆ์ œ)

public class ScanfEx1 {
	public static void main(String[] args) {
		//Scanner๊ฐ์ฒด ์ƒ์„ฑ
		Scanner scanner = new Scanner(System.in);
		
		//ํ™”๋ฉด์—์„œ ์ž…๋ ฅ๋ฐ›์€ ์ •์ˆ˜๋ฅผ  num1, 2์— ์ €์žฅ
		System.out.printf("num1: ");
		int num1 = scanner.nextInt();
		System.out.printf("num2: ");
		int num2 = scanner.nextInt();
		
		System.out.println(num1+" "+num2); //์ž…๋ ฅ๋ฐ›์€ ์ •์ˆ˜ ์ถœ๋ ฅ
		
		//ํ™”๋ฉด์—์„œ ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์„ input์— ์ €์žฅ
		System.out.printf("๋ฌธ์ž์—ด ์ž…๋ ฅ: ");
		String input = scanner.nextLine();
		//์ •์ˆ˜ํ˜•์œผ๋กœ ํ˜•๋ณ€ํ™˜
		int num = Integer.parseInt(input);

		System.out.println(num); // ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด ์ถœ๋ ฅ


	}
}

๐Ÿ“– ์ •์ˆ˜์˜ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ

์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ๋„˜์–ด์„ฐ์„๋•Œ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์ตœ๋Œ€ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ๋„˜์–ด์„œ๋ฉด ๊ทธ ํ˜•์˜ ์ตœ์†Œ๊ฐ’์œผ๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค.

shortํƒ€์ž…์˜ ํ‘œํ˜„๋ฒ”์œ„(๋ถ€ํ˜ธ๊ฐ€ ์žˆ๋Š” ์ •์ˆ˜ ) : -2^15 ~ 2^15-1(-32768~32767)

์˜ˆ์ œ)

import java.util.Scanner;

public class OverFlow {
        public static void main(String[] args) {

                short s_max = Short.MAX_VALUE;
                System.out.println("s_max + 1: " + (short)(s_max + 1)); //s_max + 1: -32768

                short s_min = Short.MIN_VALUE;
                System.out.println("s_min - 1: " + (short)(s_min - 1)); //s_min - 1: 32767


        }
}

๐Ÿ“– ํƒ€์ž…๊ฐ„์˜ ๋ณ€ํ™˜๋ฐฉ๋ฒ•

๐Ÿ“Œ ๋ฌธ์ž์™€ ์ˆซ์ž๊ฐ„์˜ ๋ณ€ํ™˜

3 + '0' -> '3' // ์ˆซ์ž๋ฅผ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜
'3' - '0' -> 3 // ๋ฌธ์ž๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜

๐Ÿ“Œ ๋ฌธ์ž์—ด๋กœ์˜ ๋ณ€ํ™˜

3 + "" -> "3" //์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜
'3' + "" -> "3" //๋ฌธ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜

๐Ÿ“Œ ๋ฌธ์ž์—ด์—์„œ ๋‹ค๋ฅธํ˜•์œผ๋กœ ๋ณ€ํ™˜

Integer.parseInt("3") -> 3 //๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜
Double.parseDouble("3.4") -> 3.4 // ๋ฌธ์ž์—ด์„ ์‹ค์ˆ˜ํ˜•์œผ๋กœ ๋ณ€ํ™˜
"3".charAt(0) -> '3' // ๋ฌธ์ž์—ด์„ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜

์˜ˆ์ œ)

public class TypeCh {
        public static void main(String [] args) {
		//๊ธฐ๋ณธํ˜•์„ ์ฐธ์กฐํ˜•์œผ๋กœ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด Object๋ฅผ ์‚ฌ์šฉ
                System.out.println(((Object)(3 + '0')).getClass().getName()); //์ˆซ์ž๋ฅผ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜
                System.out.println(((Object)('3' - '0')).getClass().getName()); //๋ฌธ์ž๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜
                System.out.println(((Object)(3 + "")).getClass().getName()); // ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜
                System.out.println(((Object)(Integer.parseInt("3"))).getClass().getName()); //๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜
                System.out.println(((Object)(Double.parseDouble("3.4"))).getClass().getName()); //๋ฌธ์ž์—ด์„ ์‹ค์ˆ˜๋กœ ๋ณ€ํ™˜

                System.out.println(((Object)(("3").charAt(0))).getClass().getName()); //๋ฌธ์ž์—ด์„ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜
        }
}
profile
์ดˆ๋ณด๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค~

0๊ฐœ์˜ ๋Œ“๊ธ€