TIL(2021.12.29)

조지성·2021년 12월 29일
0

TIL

목록 보기
11/78
post-thumbnail

전자와 2진수의 관계

(1)전자

  • (-)가 이동하면서 전류가 흐른다.

반도체

  • 부도체 : 전류 X
  • 도체 : 전류가 흐름
  • 반도체 : 전류가 흐르거나 전류가 흐르지 않거나 (온도에 의존한다)
    - 온도가 높아지면 전류가 흐르지않고
    - 온도가 낮아지면 전류가 잘 흐른다
    예를들어 전산실 같은 경우에는 온도를 낮게 설정

2진수

  • 전류가 흐를 때 기계를 작동할것인지 안할것인지 0 과 1로 구분
    따라서 2가지의 경우의 수가 생김 => 1bit

선풍기

  • 1bit (on, off)
    0 -> 끄고
    1 -> 킨다
  • 2bit (on,강, 약, 미)
    0 , 0 off
    0 , 1 미풍
    1 , 0 약풍
    1 , 1 강풍

커패시터 (축전기)

  • 메모리 DRAM이 커패시터로 구성됨
    전류가 공급되면 일시적으로 담아둘 수 있다

자바스크립트

  • 중복이 발생했을 때 함수를 사용한다
  • 중복을 제거할 때 중복이 아닌 부분이지만 바뀌는 부분은 매개변수로 처리한다
  • 함수가 함수를 리턴하는 함수를 고차함수(high order func)이라한다
<!DOCTYPE html>

<head>
    <meta charset="utf-8">
    <title>계산기</title>
    <style>
        * {
            box-sizing: border-box
        }

        #result {
            width: 180px;
            height: 50px;
            margin: 5px;
            text-align: right
        }

        #operator {
            width: 50px;
            height: 50px;
            margin: 5px;
            text-align: center
        }

        button {
            width: 50px;
            height: 50px;
            margin: 5px
        }
    </style>
</head>

<!--계산기버튼구현-->

<body>
    <input readonly id="operator">
    <input readonly type="number" id="result">
    <div class="row">
        <button id="num-7">7</button>
        <button id="num-8">8</button>
        <button id="num-9">9</button>
        <button id="plus">+</button>
    </div>
    <div class="row">
        <button id="num-4">4</button>
        <button id="num-5">5</button>
        <button id="num-6">6</button>
        <button id="minus">-</button>
    </div>
    <div class="row">
        <button id="num-1">1</button>
        <button id="num-2">2</button>
        <button id="num-3">3</button>
        <button id="divide">/</button>
    </div>
    <div class="row">
        <button id="clear">C</button>
        <button id="num-0">0</button>
        <button id="calculate">=</button>
        <button id="multiply">x</button>
    </div>
    <script>
        let numOne = '';
        let operator = '';
        let numTwo = '';
        const $operator = document.querySelector('#operator'); //태그 선택자
        const $result = document.querySelector('#result'); //  태그 선택자
        const onClickNumber = (number) =>  //중복이 발생했을 때 중복이 아닌 부분을 매개변수로 빼라 , 함수가 함수를 리턴 (고차함수)
            () => {
                if (operator) {
                    numTwo += number;
                } else {
                    numOne += number;
                }
                $result.value += number;
            }; // 고차 함수 high order function
        document.querySelector('#num-0').addEventListener('click', onClickNumber('0'));
        document.querySelector('#num-1').addEventListener('click', onClickNumber('1'));
        document.querySelector('#num-2').addEventListener('click', onClickNumber('2'));
        document.querySelector('#num-3').addEventListener('click', onClickNumber('3'));
        document.querySelector('#num-4').addEventListener('click', onClickNumber('4'));
        document.querySelector('#num-5').addEventListener('click', onClickNumber('5'));
        document.querySelector('#num-6').addEventListener('click', onClickNumber('6'));
        document.querySelector('#num-7').addEventListener('click', onClickNumber('7'));
        document.querySelector('#num-8').addEventListener('click', onClickNumber('8'));
        document.querySelector('#num-9').addEventListener('click', onClickNumber('9'));
        document.querySelector('#plus').addEventListener('click', () => { });
        document.querySelector('#minus').addEventListener('click', () => { });
        document.querySelector('#divide').addEventListener('click', () => { });
        document.querySelector('#multiply').addEventListener('click', () => { });
        document.querySelector('#calculate').addEventListener('click', () => { });
        document.querySelector('#clear').addEventListener('click', () => { });
    </script>
</body>
profile
초보 개발자의 성장기💻

0개의 댓글