Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
31
Task/Four-bit-adder/Sidef/four-bit-adder.sidef
Normal file
31
Task/Four-bit-adder/Sidef/four-bit-adder.sidef
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
func bxor(a, b) {
|
||||
(~a & b) | (a & ~b)
|
||||
}
|
||||
|
||||
func half_adder(a, b) {
|
||||
return (bxor(a, b), a & b)
|
||||
}
|
||||
|
||||
func full_adder(a, b, c) {
|
||||
var (s1, c1) = half_adder(a, c)
|
||||
var (s2, c2) = half_adder(s1, b)
|
||||
return (s2, c1 | c2)
|
||||
}
|
||||
|
||||
func four_bit_adder(a, b) {
|
||||
var (s0, c0) = full_adder(a[0], b[0], 0)
|
||||
var (s1, c1) = full_adder(a[1], b[1], c0)
|
||||
var (s2, c2) = full_adder(a[2], b[2], c1)
|
||||
var (s3, c3) = full_adder(a[3], b[3], c2)
|
||||
return ([s3,s2,s1,s0].join, c3.to_s)
|
||||
}
|
||||
|
||||
say " A B A B C S sum"
|
||||
for a in ^16 {
|
||||
for b in ^16 {
|
||||
var(abin, bbin) = [a,b].map{|n| "%04b"%n->chars.reverse.map{.to_i} }...
|
||||
var(s, c) = four_bit_adder(abin, bbin)
|
||||
printf("%2d + %2d = %s + %s = %s %s = %2d\n",
|
||||
a, b, abin.join, bbin.join, c, s, "#{c}#{s}".bin)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue