assignment.py 1.61 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
#def value(v, p=4, n=3):
    #"""รับ v มาเพื่อหาค่าเป็นเลขฐานสิบ binary -> digital.
    #โดยค่ากำหนดเริ่มต้น
#    p เป็นจำนวนหลักที่ใช้เป็นบวก 4 หลัก
    #n เป็นจำนวนหลักที่ใช้เป็นลบ 3 หลัก
#    sign bit เป็นหลักแรกเสมอ
#    """
#    sign = -1 if v[0] == 1 else 1
#    return sign*sum([v[i]*2**(4-i) for i in range(1,8)])

# ทดสอบ
#v = [ 0,   0,0,0,1,  1,0,0 ]
#print(v)
#print(value(v))
#v = [ 1,   0,1,0,1,  0,1,1 ]
#print(v)
#print(value(v))

#def values(v, p=4, n=3):
    #"""หมายเหตุ v จะเป็น string v='000010101'
    #"""
    #return 0

#print( values('10001100', p=4, n=4) )

def sigle_prec(v):
	"""รับ v มาเพื่อหาค่าเป็นเลขฐานสิบ binary -> digital.
    โดยใช้ระบบ IEEE single precision format
    s ,   e, f      ---> ตัวแปร
    0 , 1-8, 9-31   ---> ตำแหน่ง bit
    1 ,   8, 23     ---> จำนวน bits

    sign = -1 if v[0] == 1 else 1
    0 11111111 1111111111111
    (-1)**0 * (1*2**() )
    """
    return (-1)**int(v[0])*sum([int(v[i])*2**(8-i) for i in range (1,32)])

def double_prec(v):## dki[hko week04
    """ รับ v มาเพื่อหาค่าเป็นเลขฐานสิบ binary -> digital.
    โดยใช้ระบบ IEEE double precision format
    """
    sign = -1 if v[0] == 1 else 1
    return None