Baekjoon-16506-CPU
05 Oct 2022만약 문자열 포맷팅을 쓰고 싶다면
format(ra,"03b")
이런 식으로 써주면 되긴 하다.
N = int(input())
op_table = {
'ADD': '0000',
'SUB': '0001',
'MOV': '0010',
'AND': '0011',
'OR': '0100',
'NOT': '0101',
'MULT': '0110',
'LSFTL': '0111',
'LSFTR': '1000',
'ASFTR': '1001',
'RL': '1010',
'RR': '1011',
}
def intToBit(a, bits):
result = ""
for i in reversed(range(bits)):
if a // int(2**i) > 0:
result += '1'
a %= int(2**i)
else:
result += '0'
return result
for _ in range(N):
comm = input().split()
op = comm[0]
rd,ra,rb = map(int, comm[1:])
result = ""
if op[-1] == 'C':
result += op_table[op[:-1]] + "10"
else:
result += op_table[op] + "00"
result += intToBit(rd,3)
if op in ['MOV', 'MOVC', 'NOT']:
result += "000"
else:
result += intToBit(ra,3)
if op[-1] == 'C':
result += intToBit(rb,4)
else:
result += intToBit(rb,3) + "0"
print(result)