전자와 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;
};
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>