C = 0001、S = 0110はできたのでしょうか。 論理回路の組み合わせに変換すると、下記となります。
半加算器のシミュレーション
JavaScript言語
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript Function</title>
<script>
function halfAdder(A, B)
{
var temp=[2];
var C = A & B;//AND回路
var d = A | B;//OR回路
var e = ~C;//NOT回路
var S = d & e;//AND回路
temp[0]=C;temp[1]=S;
return temp;
}
</script>
</head>
<body>
<h1>1+1=2(10)のJavaScriptシミュレーション</h1>
<script>
var A = 0;var B = 0;
document.write("A=",A,",","B=",B,",","C=",halfAdder(A,B)[0],",","S=",halfAdder(A,B)[1]);
document.write("<br>\n" );
var A = 0;var B = 1;
document.write("A=",A,",","B=",B,",","C=",halfAdder(A,B)[0],",","S=",halfAdder(A,B)[1]);
document.write("<br>\n" );
var A = 1;var B = 0;
document.write("A=",A,",","B=",B,",","C=",halfAdder(A,B)[0],",","S=",halfAdder(A,B)[1]);
document.write("<br>\n" );
var A = 1;var B = 1;
document.write("A=",A,",","B=",B,",","C=",halfAdder(A,B)[0],",","S=",halfAdder(A,B)[1]);
</script>
</body>
</html>
C言語
#include<stdio.h>
int* halfAdder(int A, int B);
int main(void)
{
int* temp; int A, B;
printf("1+1=2(10)のJavaScriptシミュレーション\n");
A = 0; B = 0;
temp = halfAdder(A, B);
printf("A=%d, B=%d, C=%d, S=%d\n", A,B,temp[0],temp[1]);
A = 0; B = 1;
temp = halfAdder(A, B);
printf("A=%d, B=%d, C=%d, S=%d\n", A, B, temp[0], temp[1]);
A = 1; B = 0;
temp = halfAdder(A, B);
printf("A=%d, B=%d, C=%d, S=%d\n", A, B, temp[0], temp[1]);
A = 1; B = 1;
temp = halfAdder(A, B);
printf("A=%d, B=%d, C=%d, S=%d\n", A, B, temp[0], temp[1]);
return 0;
}
int* halfAdder(int A, int B)
{
int temp[2];
int C = A & B;//AND回路
int d = A | B;//OR回路
int e = ~C;//NOT回路
int S = d & e;//AND回路
temp[0] = C; temp[1] = S;
return temp;
}
コメント