Friday, January 18, 2008

Konversi Bilangan Biner, Octal dan Heksa

Ada seorang teman namanya Joko yang memintaku untuk membuat kode konversi bilangan decimal ke biner oktal dan heksa.

Ini adalah hasilnya, semoga bermanfaat. Dibuat dengan VFP

Konversi Decimal ke Biner

cNil = VAL(Thisform.text1.Value) &&(isikan variable nilai desimal disini)
cHasil = ''
DO WHILE NOT cNil <= 0
cBiner = MOD(cNil,2)
cHasil = cHasil + ALLTRIM(STR(cBiner))
cNil = INT(cNil / 2)
ENDDO

&& disini hasil perhitungan disusun balik biar sesuai dengan kaidah biner

n = LEN(ALLTRIM(cHasil))
cBalik = ''
DO WHILE NOT n <= 0
cBalik = cBalik + SUBSTR(cHasil,n,1)
n = n - 1
ENDDO

Konversi Decimal ke Oktal

cNil = VAL(Thisform.text1.Value) && Masukkan nilai desimal di variable ini

cHasil = ''

DO WHILE NOT cNil <= 0
cBiner = MOD(cNil,8)
cHasil = cHasil + ALLTRIM(STR(cBiner))
cNil = INT(cNil / 8)
ENDDO

n = LEN(ALLTRIM(cHasil))
cBalik = ''
DO WHILE NOT n <= 0
cBalik = cBalik + SUBSTR(cHasil,n,1)
n = n - 1
ENDDO

Konversi desimal ke Heksa desimal

cNil = VAL(Thisform.text1.Value)
cHasil = ''
DO WHILE NOT cNil <= 0
cBiner = MOD(cNil,16)
DO CASE
CASE cBiner = 10
cBiner = 'A'
CASE cBiner = 11
cBiner = 'B'
CASE cBiner = 12
cBiner = 'C'
CASE cBiner = 13
cBiner = 'D'
CASE cBiner = 14
cBiner = 'E'
CASE cBiner = 15
cBiner = 'F'
OTHERWISE
cBiner = ALLTRIM(STR(cBiner))
ENDCASE
cHasil = cHasil + cBiner
cNil = INT(cNil / 16)
ENDDO
n = LEN(ALLTRIM(cHasil))
cBalik = ''
DO WHILE NOT n <= 0
cBalik = cBalik + SUBSTR(cHasil,n,1)
n = n - 1
ENDDO

Hasil disimpan dalam variable cBalik

Semoga bermanfaat.


No comments:

Post a Comment