Skip to content

Instantly share code, notes, and snippets.

@jitomesky
Last active August 29, 2015 14:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jitomesky/69e30133c20a8d0be21e to your computer and use it in GitHub Desktop.
Save jitomesky/69e30133c20a8d0be21e to your computer and use it in GitHub Desktop.
n-bit乗算をm-bitアラインで行う筆算式を出力するコード
#!/usr/local/bin/python3
bit = 64
align = 16
for i in range(0,int(bit/align)):
a = i
b = 0
mulstring = "%3d - %3dbit: " % (align*i,align*i+align)
for j in range(0,i+1):
# print("(a%d*b%d) + " % (a,b), end="")
mulstring += "(a%d*b%d) + " % (a,b)
a -= 1
b += 1
mulstring = mulstring[:-2]
if i != 0:
mulstring += "+ carry"
print(mulstring)
rest = int(bit/align)
for i in range(1,rest):
a = int(bit/align) - 1
b = i
mulstring = "%3d - %3dbit: " % ((rest-1)*align+align*i, (rest-1)*align+align*i+align)
for j in range(rest-i,0,-1):
mulstring += "(a%d*b%d) + " % (a,b)
a -= 1
b += 1
mulstring += "carry"
print(mulstring)
print("%3d - %3dbit: carry" % (bit*2-align, bit*2))
@jitomesky
Copy link
Author

bitとalignを書き換えて使ってください。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment