(HTAs) MB 단위값을 GB 단위로 변환해서 보여주기, gigabyte↔megabyte 상호변환 Program

하드디스크 파티션을 나눌때 위와같은 화면을 접하게 된다.
단위가 MB 여서 GB 로 용량을 맞추기가 애매하다.
복잡한 기능은 아닌데, 하드 파티션 나누다가 GB 로 변환될 용량을 미리 확인해 볼 수 있는 프로그램이 있으면 좋겠다 싶어 만들어 봤다.

윈도우에서 하드디스크 파티션을 나눌때 입력하는 단위값이 MB(megabyte) 이다.
하드디스크 용량이 표시될때는 GB(gigabyte) 로 표시되는데, 이게 딱 떨어지지 않으면 왠지 눈에 거슬린다.
숫자를 계속 바꿔보면서 정확히 원하는 용량으로 맞출수도 있지만, 하드디스크에 계속 파티션을 나누는 것도 좀 찜찜하고, 이런 프로그램에서 미리 용량을 테스트 해서 입력하면 좋겠다 싶은 생각이 들었다.

윈도우의 파일 시스템은 그 용량을 계산할때, 우리가 생각하는것처럼 십진법으로 계산되는 것이 아니라 단위가 1024byte 를 기준으로 계산이 된다.
따라서, 아래와 같은 방식으로 계산이 된다.

1 KB = 1024 Byte
1 MB = 1024 * 1024
1 GB = 1024 * 1024 * 1024
1 TB = 1024 * 1024 * 1024 * 1024

따라서, 하드디스크 용량을 표시하는 GB 단위를 MB 단위로 입력해서 보려면, MB 단위로 입력한 값을 1024 로 나눠주어야 한다.
이 프로그램은 그 역할을 수행하는 단순한 기능을 구현했다.
100GB 용량을 맞추려면 대략 103000 MB 로 입력하면 되고,
600GB 용량을 맞추려면 대략 615000 MB 로 입력하면 된다.


P.S.(2012.12.18)
MB → GB 수치로 변환하는 것만 있으니 불편해서, GB→MB 로 변환하는 기능도 추가.

200GB 로 만들고 싶은데, 몇 MB 숫자로 입력해야 하는지 궁금할때, 아래 부분에서 200GB 를 입력해서 보면 알 수 있다.


P.S.2 (2012.12.20)
실제로 작업해본 결과, '디스크 관리' 에서는 100G 단위로 딱 떨어지게 맞춰도, 컴퓨터 정보에서 보면 1G 가 모자라게 표시되었다.
아마도, 약간의 용량을 더 추가해줘야 하는것 같은데, 대략 .59G 정도 더 붙게 맞춰주면 컴퓨터 정보에서도 딱 떨어지게 표시된다.
즉, 컴퓨터 정보에서 600G 로 딱 떨어지게 보이게 하고 싶다면, 디스크 관리 화면에서는 600.59G 로 표시되도록 용량을 잡아주어야 한다.

예시)
200.59G = 205400M
600.59G = 615004M
130.33G = 133462M (나머지 용량)

이와 관련하여 아래의 링크 참조할것:
파티션 분할시 딱 100G 단위로 떨어지게 하려면, 뒤에 .59G 가 되도록 맞춤


P.S.3 (2012.12.20) 용량 보정해주는 기능 추가
실제로 테스트를 해보니, '디스크 관리' 화면에서와 '컴퓨터 정보' 를 표시하는 부분에서 서로 차이가 있어서,
'컴퓨터 정보' 에 표시될때 숫자가 딱 맞아 떨어지도록 용량을 보정해주는 기능을 추가하였음.



소스코드(2012.12.20)----------------------------
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ks_c_5601-1987">
<title>gigabyte - megabyte 변환(2012.12.20)</title>
</head>
<body onload="pageload()">
<li>MB 단위로 입력해서 GB 값으로 보기<br>
단순 볼륨 크기(MB)(S) : <input type="text" id="sel1" name="sel1" -nKeyPress="javas-ript:if (event.keyCode==13){ entchk1(); }"> MB
&nbsp;&nbsp;&nbsp;
<input type="button" value="GB로 변환" onClick="chk1();" style="background-color:green;color:#FFFFFF;padding-top:2px;">
&nbsp;(버튼 클릭 또는 엔터키를 누르세요)
<br><br>
GB로 변환출력: <span id="d1" name="d1" style="color:#FF0000;font-weight:bold;">&nbsp;&nbsp;&nbsp;&nbsp;</span>
&nbsp;&nbsp;<span style="font-weight:bold;">GB</span>
&nbsp;&nbsp;&nbsp;
<input type="button" value="용량보정" onClick="bojung1();" style="background-color:#0099FF;color:#FFFFFF;padding-top:2px;">
&nbsp;(.59G 용량으로 맞춤)
<br>
예시)<br>
100GB 정도는 103000 MB 입력<br>
600GB 정도는 615000 MB 입력
<hr>
<li>GB 단위로 입력해서 MB 값으로 보기<br>
<input type="text" id="sel2" name="sel2" -nKeyPress="javas-ript:if (event.keyCode==13){ entchk2(); }"> GB
&nbsp;&nbsp;&nbsp;
<input type="button" value="MB로 변환" onClick="chk2();" style="background-color:green;color:#FFFFFF;padding-top:2px;">
&nbsp;(버튼 클릭 또는 엔터키를 누르세요)
<br><br>
MB로 변환출력: <span id="d2" name="d2" style="color:#FF0000;font-weight:bold;">&nbsp;&nbsp;&nbsp;&nbsp;</span>
&nbsp;&nbsp;<span style="font-weight:bold;">MB</span>
&nbsp;&nbsp;&nbsp;
<input type="button" value="용량보정" onClick="bojung2();" style="background-color:#0099FF;color:#FFFFFF;padding-top:2px;">
&nbsp;(.59G 용량으로 맞춤)
<hr>
보정된 수치는 완전히 정확한 수치가 아닙니다.<br>
GB 용량으로 표시될때 큰 오차없이 비슷한 GB 용량으로 표시되는 MB수치를 표시합니다.<br>
용량 보정시에는 소숫점 이하를 표시하지 않습니다.
<script language="vbscript">
sub pageload()
  sel1.focus()
  sel1.value=""
  viewspancls()
  Call self.resizeTo(800,400)
end sub
sub viewspancls()
  d1.innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;"
  d2.innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;"
end sub
sub chk1()
  s = sel1.value
  s = replace(s," ","")
  If s="" Then : viewspancls() : sel1.focus() : Exit sub
  if isNumeric(s)=false then : alert("숫자만 입력하세요") : call pageload() : exit sub
  rslt = s/1024
  rslt = FormatNumber(rslt,2)
  rslt = Replace(rslt,",","")
  d1.innerHTML = rslt
end sub
sub chk2()
  s = sel2.value
  s = replace(s," ","")
  if s="" then :viewspancls() : sel2.focus() : exit sub
  if isNumeric(s)=false then : alert("숫자만 입력하세요") : call pageload() : exit sub
  rslt = s * 1024
  d2.innerHTML = rslt
end sub
sub entchk1()
  chk1()
end sub
sub entchk2()
  chk2()
end sub
sub bojung1()
  b = d1.innerHTML
  b = replace(b,"&nbsp;","")
  if b="" then : exit sub
  if isNumeric(b)=true then
    btmp = split(b,".")
    if UBound(btmp)=0 then
      last_gb = d & ".59"
    else
      last_gb = btmp(0) & ".59"
    end if
    d1.innerHTML = last_gb
    sel1val = cdbl(last_gb) * 1024
    s1vtmp = split(sel1val,".")
    sel1.value = s1vtmp(0)
  end if
end sub
sub bojung2()
  b = sel2.value
  if isNumeric(b)=true then
    btmp = split(b,".")
    if UBound(btmp)=0 then
      s2 = b & ".59"
    else
      s2 = btmp(0) & ".59"
    end if
    be = cdbl(s2) * 1024
    betmp = split(be,".")
    be = betmp(0)
    sel2.value = s2
    d2.innerHTML = be
  end if
end sub
</script>
</body>
</html>

핑백

덧글

  • ibluesky 2013/04/16 14:45 # 삭제 답글

    감사합니다. 용량 계산할 때 딱 좋네요..
  • 연영 2018/08/30 21:41 # 삭제 답글

    (1024MB X 원하는 기가수) +1MB 해주면 정확하게 원하는 기가수가 나옵니다.
    TB의 경우는 다를 것 같지만...
댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.


통계 위젯 (화이트)

296727
4671
11050503

google_myblogSearch_side

▷검색어

Flag Counter style2