<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://vscripts.ru/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://vscripts.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86_%D0%B8%D1%81%D1%82%D0%B8%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%28%D0%BD%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_%D0%A1%D0%B8%29</id>
		<title>Генератор таблиц истинности (на языке Си) - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://vscripts.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86_%D0%B8%D1%81%D1%82%D0%B8%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%28%D0%BD%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_%D0%A1%D0%B8%29"/>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/index.php?title=%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86_%D0%B8%D1%81%D1%82%D0%B8%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_(%D0%BD%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_%D0%A1%D0%B8)&amp;action=history"/>
		<updated>2026-05-16T13:47:15Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.23.17</generator>

	<entry>
		<id>https://vscripts.ru/w/index.php?title=%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86_%D0%B8%D1%81%D1%82%D0%B8%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_(%D0%BD%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_%D0%A1%D0%B8)&amp;diff=126&amp;oldid=prev</id>
		<title>Turbo: Новая страница: «== Код на Си == &lt;pre&gt; /* Генератор таблиц истинности для сумматоров по модулю */  #include &lt;stdio.h&gt; #include…»</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/index.php?title=%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86_%D0%B8%D1%81%D1%82%D0%B8%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_(%D0%BD%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_%D0%A1%D0%B8)&amp;diff=126&amp;oldid=prev"/>
				<updated>2013-02-12T15:04:37Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «== Код на Си == &amp;lt;pre&amp;gt; ‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Генератор таблиц истинности для сумматоров по модулю: &lt;/span&gt;  #include &amp;lt;stdio.h&amp;gt; #include…»&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Код на Си ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Генератор таблиц истинности для сумматоров по модулю&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;math.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;time.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int get_bit(int x, int pos) {&lt;br /&gt;
	return (x &amp;gt;&amp;gt; pos) &amp;amp; 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int set_bit(int x, int bit_val, int pos) {&lt;br /&gt;
	if (bit_val == 1)&lt;br /&gt;
		return (x | (1 &amp;lt;&amp;lt; pos));&lt;br /&gt;
	else&lt;br /&gt;
		return (x &amp;amp; ~(1 &amp;lt;&amp;lt; pos));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int invert_bit(int x) {&lt;br /&gt;
	if (x == 1)&lt;br /&gt;
		return 0;&lt;br /&gt;
	else&lt;br /&gt;
		return 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int find_bit(int p) {&lt;br /&gt;
	int i, k;&lt;br /&gt;
	k = 1;&lt;br /&gt;
	for (i = 0; i &amp;lt; 32; i++) {&lt;br /&gt;
		if (k &amp;gt; p)&lt;br /&gt;
			return i;&lt;br /&gt;
		k *= 2;&lt;br /&gt;
	}&lt;br /&gt;
	return -1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int pow2(int p) {&lt;br /&gt;
	return (1 &amp;lt;&amp;lt; p);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void print_sum_mod(FILE *out, int p) {&lt;br /&gt;
	int i, k;&lt;br /&gt;
	int a, b;&lt;br /&gt;
	int bit, max, max2;&lt;br /&gt;
	int val, res;&lt;br /&gt;
	&lt;br /&gt;
	bit = find_bit(p-1);&lt;br /&gt;
	max = pow2(bit);&lt;br /&gt;
	max2 = pow2(2*bit);&lt;br /&gt;
&lt;br /&gt;
	for (i = 0; i &amp;lt; bit; i++)&lt;br /&gt;
		fprintf(out, &amp;quot;A%d,&amp;quot;, i);&lt;br /&gt;
	for (i = 0; i &amp;lt; bit; i++)&lt;br /&gt;
		fprintf(out, &amp;quot;B%d,&amp;quot;, i);&lt;br /&gt;
	for (i = 0; i &amp;lt; bit; i++)&lt;br /&gt;
		fprintf(out, &amp;quot;,X%d&amp;quot;, i);&lt;br /&gt;
	fprintf(out, &amp;quot;\n&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	// Заполняем минтермы&lt;br /&gt;
	for (i = 0; i &amp;lt; max2; i++) {&lt;br /&gt;
		a = 0;&lt;br /&gt;
		for (k = bit-1; k &amp;gt;= 0; k--) {&lt;br /&gt;
			val = get_bit(i, k);&lt;br /&gt;
			a += val*pow2(k);&lt;br /&gt;
			fprintf(out, &amp;quot;%d,&amp;quot;, val);&lt;br /&gt;
		}&lt;br /&gt;
		b = 0;&lt;br /&gt;
		for (k = bit-1; k &amp;gt;= 0; k--) {&lt;br /&gt;
			val = get_bit(i, bit + k);&lt;br /&gt;
			b += val*pow2(k);&lt;br /&gt;
			fprintf(out, &amp;quot;%d,&amp;quot;, val);&lt;br /&gt;
		}&lt;br /&gt;
		res = (a + b)%p;&lt;br /&gt;
		if (a &amp;gt;= p || b &amp;gt;= p) {&lt;br /&gt;
			for (k = bit-1; k &amp;gt;= 0; k--) {&lt;br /&gt;
				fprintf(out, &amp;quot;,X&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		} else {&lt;br /&gt;
			for (k = bit-1; k &amp;gt;= 0; k--) {&lt;br /&gt;
				fprintf(out, &amp;quot;,%d&amp;quot;, get_bit(res, k));&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		fprintf(out, &amp;quot;\n&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
	FILE *out;&lt;br /&gt;
	int i, num, mod;&lt;br /&gt;
	char buf[255];&lt;br /&gt;
	&lt;br /&gt;
	for (i = 3; i &amp;lt; 256; i++) {&lt;br /&gt;
		sprintf(buf, &amp;quot;res_sum/sum_mod_%d.csv&amp;quot;, i);&lt;br /&gt;
		out = fopen(buf, &amp;quot;w&amp;quot;);&lt;br /&gt;
		print_sum_mod(out, i);&lt;br /&gt;
		fclose(out);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Результат работы ==&lt;br /&gt;
* [http://vscripts.ru/res/files/Truth-table-sum-by-mod-450MB.7z Архив с таблицами истинности для сумматоров по модулю от 3 до 255]&lt;br /&gt;
* [http://vscripts.ru/res/files/Truth-table-mul-by-mod-450MB.7z Архив с таблицами истинности для умножителей по модулю от 3 до 255]&lt;/div&gt;</summary>
		<author><name>Turbo</name></author>	</entry>

	</feed>