|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
|
Page 1 of 1
|
[ 2 posts ] |
|
Функции троичного сумматора на основе таблицы суммирования
Author |
Message |
tvitaly1
Writer
Joined: 24 Oct 2022 14:34 Posts: 12
|
Таблица Сложения Ī+I = ĪI 0+Ī=Ī I+Ī=0 Ī+0 = Ī 0+0=0 I+0=I (3) Ī+I = 0 0+I=I I+I=IĪ 'Тихвинский В.И. функции сумматора на основе таблиц сложения 'A, B, P_1 - первое, второе слагаемое и перенос из предыдущего разряда 'S,P - функции суммы и переноса 'массивы данных и подпраграмма инициализации lfyys[ Dim SD(-1 To 1, -1 To 1) As Integer, PD(-1 To 1, -1 To 1) As Integer Sub iniSP() If SD(-1, -1) = 0 Then 'таблицы суммирования и переноса SD(-1, -1) = 1: SD(0, -1) = -1: SD(1, -1) = 0 SD(-1, 0) = -1: SD(0, 0) = 0: SD(1, 0) = 1 SD(-1, 1) = 0: SD(0, 1) = 1: SD(1, 1) = -1 PD(-1, -1) = -1: PD(0, -1) = 0: PD(1, -1) = 0 PD(-1, 0) = 0: PD(0, 0) = 0: PD(1, 0) = 0 PD(-1, 1) = 0: PD(0, 1) = 0: PD(1, 1) = 1 End If End Sub
Function S(A, B, P_1) iniSP S = SD(SD(A, B), P_1) End Function
Function P(A, B, P_1) iniSP P1 = PD(A, B) P = P1 + PD(SD(A, B), P_1) End Function
|
11 Nov 2022 11:26 |
|
|
tvitaly1
Writer
Joined: 24 Oct 2022 14:34 Posts: 12
|
| | | | tvitaly1 wrote: Таблица Сложения Ī+I = ĪI 0+Ī=Ī I+Ī=0 Ī+0 = Ī 0+0=0 I+0=I (3) Ī+I = 0 0+I=I I+I=IĪ 'Тихвинский В.И. функции сумматора на основе таблиц сложения 'A, B, P_1 - первое, второе слагаемое и перенос из предыдущего разряда 'S,P - функции суммы и переноса 'массивы данных и подпраграмма инициализации lfyys[ Dim SD(-1 To 1, -1 To 1) As Integer, PD(-1 To 1, -1 To 1) As Integer Sub iniSP() If SD(-1, -1) = 0 Then 'таблицы суммирования и переноса SD(-1, -1) = 1: SD(0, -1) = -1: SD(1, -1) = 0 SD(-1, 0) = -1: SD(0, 0) = 0: SD(1, 0) = 1 SD(-1, 1) = 0: SD(0, 1) = 1: SD(1, 1) = -1 PD(-1, -1) = -1: PD(0, -1) = 0: PD(1, -1) = 0 PD(-1, 0) = 0: PD(0, 0) = 0: PD(1, 0) = 0 PD(-1, 1) = 0: PD(0, 1) = 0: PD(1, 1) = 1 End If End Sub
Function S(A, B, P_1) iniSP S = SD(SD(A, B), P_1) End Function
Function P(A, B, P_1) iniSP P1 = PD(A, B) P = P1 + PD(SD(A, B), P_1) End Function | | | | |
Расширил диапазон кодирования чисел Тихвинский В.И. функции сумматора на основе таблиц сложения 'A, B, P_1 - первое, второе слагаемое и перенос из предыдущего разряда 'S,P - функции суммы и переноса 'массивы данных и подпрограмма инициализации их iniSP() Dim SD(-1 To 1, -1 To 1) As Integer, PD(-1 To 1, -1 To 1) As Integer 'массив возможного кодирования цифр и N-номер кодирования Dim Sim(1 To 3, -1 To 1), N Sub iniSP() If SD(-1, -1) = 0 Then 'таблицы суммирования и переноса SD(-1, -1) = 1: SD(0, -1) = -1: SD(1, -1) = 0 SD(-1, 0) = -1: SD(0, 0) = 0: SD(1, 0) = 1 SD(-1, 1) = 0: SD(0, 1) = 1: SD(1, 1) = -1 PD(-1, -1) = -1: PD(0, -1) = 0: PD(1, -1) = 0 PD(-1, 0) = 0: PD(0, 0) = 0: PD(1, 0) = 0 PD(-1, 1) = 0: PD(0, 1) = 0: PD(1, 1) = 1 Sim(1, -1) = -1: Sim(1, 0) = 0: Sim(1, 1) = 1 ' +; 0-нуль; - Sim(2, -1) = "-": Sim(2, 0) = "0": Sim(2, 1) = "+" ' N; Z; P Sim(3, -1) = "N": Sim(3, 0) = "Z": Sim(3, 1) = "P" End If End Sub Function NN(A) For N = 1 To 3 For J = -1 To 1 If A = Sim(N, J) Then 'перевод A в цифру A = Sim(1, J) 'номер кодирования NN = N Exit Function End If Next J Next N End Function Function S(A, B, P_1) iniSP N = NN(A) N = NN(B) N = NN(P_1) S1 = SD(SD(A, B), P_1) S = Sim(N, S1) End Function Function P(A, B, P_1) iniSP N = NN(A) N = NN(B) N = NN(P_1) P1 = PD(A, B) + PD(SD(A, B), P_1) P = Sim(N, P1) End Function
|
12 Nov 2022 05:06 |
|
|
|
Page 1 of 1
|
[ 2 posts ] |
|
Who is online |
Users browsing this forum: No registered users and 5 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|