電腦為二進位系統,最小儲存單位為位元(bit),8個位元變成1個位元組(byte), byte組成1KB, byte組成1MB, byte組成1GB, byte組成1TB, byte組成1PB, byte組成1EB, byte組成1ZB, byte組成1YB,請寫出一個程式計算 的十進位數值。
這應該只是單純的計算,
還是自己想吧...
你應該先把你目前的做法貼出來,
遇到什麼問題提出來,
這裡是解答問題的地方,
不是幫忙做作業的地方.
#!/usr/bin/env python3
base10 = 2 ** 10
nbytes = 1
binlst = ['KB', 'MB', 'GB', 'TB', 'PB'
, 'EB', 'ZB', 'YB']
for _, elem in enumerate(binlst):
nbytes = nbytes * base10
print('{} -> {:26d}'.format(elem, nbytes))
可以把空白的地方填滿嗎
填 0 可以嗎
填滿了
@listennn08 不要欺負他辣~他連GOOGLE都不會,對題目一點想法都沒有,大家把答案給他了也不會修改,真的很可憐了!
筆記~~
#!/usr/bin/env python3
binlst = ['KB', 'MB', 'GB', 'TB', 'PB'
, 'EB', 'ZB', 'YB']
for n, elem in enumerate(binlst):
nbytes = 1 << ((n+1) * 10)
print('{} -> {:025d}'.format(elem, nbytes))
補個填
>>> >>> ... >>> >>> ... ... ...
KB -> 填填填填填填填填填填填填填填填填填填填填填1024
MB -> 填填填填填填填填填填填填填填填填填填1048576
GB -> 填填填填填填填填填填填填填填填1073741824
TB -> 填填填填填填填填填填填填1099511627776
PB -> 填填填填填填填填填1125899906842624
EB -> 填填填填填填1152921504606846976
ZB -> 填填填1180591620717411303424
YB -> 1208925819614629174706176
同場加映 Ruby版本,以後改要學Ruby時,就不必再問.
#!/usr/bin/env ruby
binarr = ['KB', 'MB', 'GB', 'TB',
'PB', 'EB', 'ZB', 'YB']
binarr.each_with_index do |elem, n|
nbytes = 1 << ((n+1) * 10)
puts "%s -> %025d" % [elem, nbytes]
end
直接印出來也可?
print('''KB -> 1024
MB -> 1048576
GB -> 1073741824
TB -> 1099511627776
PB -> 1125899906842624
EB -> 1152921504606846976
ZB -> 1180591620717411303424
YB -> 1208925819614629174706176''')
人太好了.
小雨大就是提攜後進,讚,但樓主這種提問態度,我這種好脾氣的
都希望他還是轉系比較適合
其實我就是在幫助他早點放棄.
看了各位大大的創意回答
讓我笑到肚子痛
讓我想到大學時,有位漂亮的中文系學姊
修了一門計算機概論的通識課
跑來問我會不會寫:解 ax平方 + bx + c=0 的程式
講了半天都講不通
看在漂亮學姊的份上
直接幫她寫一個,印出來
她興高采烈的把程式碼拿回去研究
第二天卻怒氣沖沖的跑來罵我
『你為什麼騙我?程式裡面,我從頭看到尾,就是沒有 ax平方 + bx + c=0』
真是不知道該怎麼解釋下去...
要寫成平方,是一般口語把2次方講成平方. 以下用Python做一個次方的運算子,你可以再拿給你學姊看.
#!/usr/bin/env python3
class Infix:
def __init__(self, function):
self.function = function
def __ror__(self, other):
return Infix(lambda x, self=self, other=other: self.function(other, x))
def __or__(self, other):
return self.function(other)
def __rlshift__(self, other):
return Infix(lambda x, self=self, other=other: self.function(other, x))
def __rshift__(self, other):
return self.function(other)
def __call__(self, value1, value2):
return self.function(value1, value2)
次方 = Infix(lambda x,y: x ** y)
pow1 = 2 |次方| 3
pow2 = 3 <<次方>> 3
pow3 = 5 |次方| 2
print("2 的 3 次方 = %d" % pow1)
print("3 的 3 次方 = %d" % pow2)
print("5 的 2 次方 = %d" % pow3)
謝謝喔
@kjfang
漂亮即正義