반응형 전체 글553 컴퓨터 구조 - 명렁어 사이클,인터럽트, 예외,하드웨어 인터럽트, 인터럽트 서비스 루틴 CPU가 하나의 명령어를 처리하는 과정에는 정해진 흐름이 있고 그 흐름을 반복하며 명령어들을 처리해 나간다. 하나의 명령어를 처리하는 정형화된 흐름을 명령어 사이클이라고 한다. CPU는 정해진 흐름에 따라 명령어를 처리해 나가지만 간혹 이 흐름이 끊어지는 상황이 발생한다. 이를 인터럽트라고 한다. 명령어 사이클 프로그램은 수많은 명령어로 이루어져 있고 CPU는 이 명령어들을 하나씩 실행한다. 이때 프로그램 속 각각의 명령어들은 일정한 주기가 반복되며 실행되는데 이 주기를 명령어 사이클(instruction cycle)이라고 한다. 즉 프로그램 속 각각의 명령어들은 명령어 사이클이 반복되며 실행한다. 01 인출 사이클(fetch cycle) 메모리에 있는 명령어를 CPU로 가져오기 02 실행 사이클(exe.. 2023. 11. 22. 백준 C# - 2089 +) 풀이 풀이 -2진법이란? -2진법에서의 2의 거듭제곱은 사용하는 것처럼 -2진법에서는 -2의 거듭제곱이 사용된다. -7을 예시로 보면 아래와 같이 표현할 수 있다. 그러므로 -2진수를 구하기 위해서는 2진수를 구했던 방법처럼 구하면 된다. 01 n이 0인 경우 처리 if (num == 0) { Console.WriteLine("0"); return; } 02 n을 -2로 나눈 나머지를 구한다. 나머지는 -1,0,1중 하나이다. 그리고 이를 절댓값으로 만든다. 그리고 자릿값을 stringbuilder맨 앞에 넣어준다. int remainder = Math.Abs(num % -2); sb.Insert(0, remainder); 절댓값으로 표시하고 싶지 않은 경우 아래와 같이 작성할 수도 있다. int remain.. 2023. 11. 22. 백준 C# - 1212 +)풀이 비슷한 문제인 2진수를 8진수로 바꾸는 문제를 먼저 풀고 오는 것을 추천한다. 백준 C# - 1373 백준 C# - 1373 +) 풀이 1. 첫번째 방법 2진수를 8진수로 바꾸는 문제여서 간단하게 아래와 같이 풀었다. 이렇게 풀었더니 overflow에러가 떴다.. string num = Console.ReadLine(); string result = Convert.ToString(Convert.ToInt32(num, 2), 8); Conso code-piggy.tistory.com 풀이 위의 문제에서는 3자리수를 8진수로 바꾸었는데 이번에는 반대로 1자리수를 3자리 수로 바꾸면 된다. 01 입력받은 8진수를 2진수로 바꾸기 sb.Append(Convert.ToString(value, 2)); 02 Pad.. 2023. 11. 21. C# - PadLeft, PadRight메서드 사용해서 문자열 특정길이로 만드는 법 String.PadLeft 메서드 public string PadLeft(int totalWidth); 매개변수 totalWidth : 최종적으로 가져야 할 문자열의 전체 길이 코드 예제 string original = "Piggy"; string paddedLeft = original.PadLeft(10); Console.WriteLine(paddedLeft); // " Piggy" public string PadLeft(int totalWidth, char paddingChar); 매개변수 totalWidth : 최종적으로 가져야 할 문자열의 전체 길이 paddingChar : 패딩에 사용될 문자열 코드 예제 string original = "Piggy"; string paddedLeft = orig.. 2023. 11. 21. 백준 C# - 1373 +) 풀이 1. 첫번째 방법 2진수를 8진수로 바꾸는 문제여서 간단하게 아래와 같이 풀었다. 이렇게 풀었더니 overflow에러가 떴다.. string num = Console.ReadLine(); string result = Convert.ToString(Convert.ToInt32(num, 2), 8); Console.WriteLine(result); 문제를 다시 일어보니 2진수가 1,000,000까지 입력되니까 생기는 이유같았다. 2. 두번째 방법 아래 그림과 같이 이진수를 3배수로 만들고 3개씩 묶어 8진수로 바꾸면된다. 01 2진수 3배수로 만들기 2진수가 3배수가 아닌 경우 앞에 0을 붙이면서 3배수로 만들기 if (num.Length % 3 != 0) { for (int i = 0; i < 3 - co.. 2023. 11. 21. C# - Convert.ToInt32메서드로 진수 변환(2진수, 8진수, 16진수를 10진수로 ) Convert.ToInt32 메서드 문자열을 정수로 변환한다. public static int ToInt32(string? value, int fromBase); 매개변수 value : 변환할 문자열 null이면 안된다. fromBase : value의 진법을 나타낸다. 2,8,,1016진수 중 하나여야한다. 다른 값을 사용하면 ArgumnetException가 발생한다. 코드로 알아보자 01 16진수를 10진수 string num = "1A3"; int decimalFromHex = Convert.ToInt32(num, 16); Console.WriteLine($"10진수로 변환된 값 {decimalFromHex}"); 02 8진수를 10진수로 string num = "123"; int decimalF.. 2023. 11. 21. 이전 1 ··· 36 37 38 39 40 41 42 ··· 93 다음 반응형