Network Lab
Network Lab
CODE:
#include<stdio.h>
#include<string.h>
#define N strlen(gen_poly)
char data[28];
char check_value[28];
char gen_poly[10];
int l,i,j;
void XOR(){
for(j=1;j<N;j++){
check_value[j]=((check_value[j]== gen_poly[j])?'0':'1');
void crc();
void receiver(){
scanf("%s", data);
printf("\n");
crc();
for(i=0;(i<N-1) &&(check_value[i]!='1');i++);
if(i<N-1)
printf("\nError detected");
else
void crc(){
for(i=0;i<N;i++)
check_value[i]=data[i];
do{
if(check_value[0]=='1')
XOR();
for(j=0;j<N-1;j++)
check_value[j]=check_value[j+1];
check_value[j]=data[i++];
}while(i<=l+N-1);
int main(){
scanf("%s",data);
scanf("%s",gen_poly);
l=strlen(data);
for(i=l;i<l+N-1;i++)
data[i]='0';
printf("\n");
crc();
for(i=l;i<l+N-1;i++)
data[i]=check_value[i-l];
printf("\n");
printf("\n");
receiver();
return 0;
}
Output: Enter the data to be transmitted
1010101010
11001
Error detected
#include<bits/stdc++.h>
int main(){
int i,n,a[20],b[20];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
for(i=0;i<n;i++){
scanf("%d",&b[i]);
}
int count=0;
for(i=0;i<n;i++){
if(a[i]!=b[i]){
count++;
return 0;
#include <stdio.h>
#include <string.h>
int main() {
scanf("%s", mainString);
scanf("%s", strings[i]);
int i, count = 0;
if (str1[i] != str2[i])
count++;
return count;
minDistance = distance;
minIndex = i;
return 0;
CODE:
#include <iostream>
#include <vector>
// Function to compute the row and column parity for a given 2D matrix
int row_parity = 0;
row_parity ^= matrix[i][j];
cout << "Row " << i << ": " << row_parity << endl;
}
int col_parity = 0;
col_parity ^= matrix[i][j];
cout << "Column " << j << ": " << col_parity << endl;
int main() {
vector<vector<int>> matrix = {
{1, 1, 0, 1, 1, 0, 0, 1},
{1, 0, 0, 1, 1, 1, 1, 0},
{1, 0, 1, 1, 0, 0, 1, 1}
};
computeParity(matrix);
return 0;
CODE:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char identifyClass(char ip[]) {
return 'A';
return 'B';
return 'C';
return 'D';
else
return 'E';
int main() {
char ip[16];
scanf("%s", ip);
return 0;
CODE:
#include <bits/stdc++.h>
using namespace std;
while (n!=1){
int rem=n%2;
n/=2;
s1. push_back(rem);
if (n==1) s1.push_back(n);
return s1;
int main(){
string ip = "205.16.37.39/28";
cout <<".";
cout <<".";
cout <<".";
int k1=0;
int s1 = ans4.size()-1;
ans4[s1--]=0;
k1++;
cout <<endl;
int k = 0;
int s = ans4.size() - 1;
while (k != bits) {
ans4[s--] = 1;
k++;
ALL IP ADDRESSES:
CODE:
#include <bits/stdc++.h>
vector<int> s1;
while (n != 1){
int rem = n % 2;
n /= 2;
s1.push_back(rem);
if (n == 1) s1.push_back(n);
reverse(s1.begin(), s1.end());
return s1;
int main(){
string ip = "205.16.37.39/28";
cout <<".";
cout <<".";
cout <<".";
int k1=0;
int s1 = ans4.size()-1;
ans4[s1--]=0;
k1++;
cout <<endl;
int k = 0;
int s = ans4.size() - 1;
while (k != bits) {
ans4[s--] = 1;
k++;
cout <<"11001101.10000.100101.";
return 0;
CODE:
#include <stdio.h>
#include <string.h>
decimal /= 2;
if (ipClass == 'A') {
int i = 0, j = 0;
network[i++] = str[j++];
i = 0;
j++;
host[i++] = str[j++];
int i = 0, j = 0, dotCount = 0;
network[i++] = str[j++];
if (str[j] == '.')
dotCount++;
}
i = 0;
j++;
host[i++] = str[j++];
int i = 0, j = 0, dotCount = 0;
network[i++] = str[j++];
if (str[j] == '.')
dotCount++;
i = 0;
j++;
host[i++] = str[j++];
// and Host ID
else
int main() {
char ip_address[16];
scanf("%s", ip_address);
int octet = 0;
int binary[32];
int index = 0;
if (ip_address[i] == '.') {
int tempBinary[8];
decimalToBinary(octet, tempBinary);
index += 8;
octet = 0;
} else {
int tempBinary[8];
decimalToBinary(octet, tempBinary);
if (binary[0] == 0) {
ip_class = 'A';
ip_class = 'B';
ip_class = 'C';
ip_class = 'D';
} else {
ip_class = 'E';
separate(ip_address, ip_class);
return 0;
#include <stdio.h>
#include <string.h>
binary[i] = decimal % 2;
decimal /= 2;
}
}
int main() {
char ip_address[16];
scanf("%s", ip_address);
int octet = 0;
int binary[32];
int index = 0;
if (ip_address[i] == '.') {
int tempBinary[8];
decimalToBinary(octet, tempBinary);
index += 8;
octet = 0;
} else {
int tempBinary[8];
decimalToBinary(octet, tempBinary);
char ip_class;
if (binary[0] == 0) {
ip_class = 'A';
} else if (binary[0] == 1 && binary[1] == 0) {
ip_class = 'B';
ip_class = 'C';
ip_class = 'D';
} else {
ip_class = 'E';
return 0;
#include <bits/stdc++.h>
string decimalToBinary(int n) {
if (n == 0) return "0";
while (n > 0) {
n = n / 2;
return binary;
int main() {
cout <<binaryNumber<<".";
return 0;
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
int carry = 0;
carry /= 2;
return result;
if (pos != string::npos) {
return s.substr(pos);
return "0";
if (binarySum.find('0') == string::npos) {
} else {
int main() {
cout << "Sum before adding complement: " << sum << endl;
if (sum.size() > 4) {
sum = sum.substr(1);
sum = handleComplement(sum);
sum = stripLeadingZeros(sum);
cout << "Final Sum after adding complement and removing leading zeros: " << sum << endl;
checkAllOnes(sum);
return 0;
WITH USER INPUT AND FRAME SIZE (If both sender and receiver given):
#include <bits/stdc++.h>
if (data[i] == '0')
data[i] = '1';
else
data[i] = '0';
return data;
int n = data.length();
if (n % block_size != 0) {
result += data[i];
next_block += data[j];
+ (result[k] - '0');
carry = sum / 2;
if (sum == 0) {
sum = carry;
else if (sum == 1) {
sum = carry;
else if (sum == 2) {
else {
sum = carry;
if (carry == 1) {
l--) {
if (carry == 0) {
== 0) {
carry = 1;
else {
carry = 0;
result = final;
else {
result = additions;
return Ones_complement(result);
}
string rec_message,
int block_size)
string sender_checksum
= checkSum(sent_message, block_size);
if (count(receiver_checksum.begin(),
receiver_checksum.end(), '0')
== block_size) {
return true;
else {
return false;
int main()
string sent_message
= "101111011110";
string recv_message
= "101111011110";
int block_size = 3;
if (checker(sent_message,
recv_message,
block_size)) {
}
else {
return 0;
PRINT CLASS:
#include <bits/stdc++.h>
string decimalToBinary(int n) {
if (n == 0) return "0";
while (n > 0) {
n = n / 2;
return binary;
int main() {
char firstNumberPrefix;
if (isFirstNumber) {
firstNumberPrefix = determinePrefix(binaryNumber);
isFirstNumber = false;
return 0;