Professional Documents
Culture Documents
DIGITAL ASSIGNMENT -2
1 |P a g e
AMAN RAJ 19BIT0353
CODE:-
#include <stdio.h>
#include<string.h>
void bitcal(int l, char arr[l]){
int i=0,j=0;
for(i=0;i<l;i++){
if(arr[i]=='1'){
j++;
}
}
if(j%2==0){
printf("The even parity bit is 0");
}
else{
printf("The even parity bit is 1");
}
}
int main()
{
int lenght;
printf("Enter the length of data unit: ");
scanf("%d", &lenght);
char bitt[lenght];
printf("Enter the data unit: ");
2 |P a g e
AMAN RAJ 19BIT0353
scanf("%s",bitt);
bitcal(lenght, bitt);
return 0;
}
OUTPUT:-
A)1001011
b. 0001100
c. 1000000
d. 1110111
3 |P a g e
AMAN RAJ 19BIT0353
Question 2.
A)
CODE:-
#include<stdio.h>
#include<string.h>
int main()
{
char a[20],b[20],c[20],d[20],carry1;
char sum[20],sumab[20],sumcd[20],complement[20];
int i,length,j,x,y,w,z;
printf("Enter first binary number \n");
scanf("%s",a);
printf("Enter second binary number \n");
scanf("%s",b);
printf("Enter third binary number \n");
scanf("%s",c);
printf("Enter fourth binary number \n");
scanf("%s",d);
if(strlen(a)==strlen(b)&&strlen(b)==strlen(c)&&strlen(c)==strlen
(d))
{
4 |P a g e
AMAN RAJ 19BIT0353
length = strlen(a);
char carry='0';
for (j=0;j<3;j++)
{
for(i=length-1;i>=0;i--)
{
if(a[i]=='0' && b[i]=='0' && carry=='0')
{
sum[i]='0';
carry='0';
}
else if(a[i]=='0' && b[i]=='0' && carry=='1')
{
sum[i]='1';
carry='0';
}
else if(a[i]=='0' && b[i]=='1' && carry=='0')
{
sum[i]='1';
carry='0';
}
else if(a[i]=='0' && b[i]=='1' && carry=='1')
{
sum[i]='0';
carry='1';
}
else if(a[i]=='1' && b[i]=='0' && carry=='0')
{
sum[i]='1';
carry='0';
}
5 |P a g e
AMAN RAJ 19BIT0353
sumcd[i]=sum[i];
}
for (i=0;i<length;i++){
a[i]=sumab[i];
}
for (i=0;i<length;i++){
b[i]=sumcd[i];
}
}
if (j==2){
break;
}
}
for(i=0;i<length;i++)
{
if(sum[i]=='0')
complement[i]='1';
else
complement[i]='0';
}
if(carry=='1')
carry='0';
else
carry='1';
printf("\nChecksum=%c%s",carry,complement);
}else {
printf("\nWrong input strings");
}
}
OUTPUT:-
7 |P a g e
AMAN RAJ 19BIT0353
B) .
CODE:-
#include<stdio.h>
#include<string.h>
int main()
{
char a[20],b[20],c[20],d[20],carry1;
char sum[20], sumab[20], sumcd[20], complement[20],
sum1[20], complement1[20];
int i,length,j,x,y,w,z;
printf("Enter first binary number \n");
scanf("%s",a);
printf("Enter second binary number \n");
scanf("%s",b);
printf("Enter third binary number \n");
scanf("%s",c);
printf("Enter fourth binary number \n");
scanf("%s",d);
8 |P a g e
AMAN RAJ 19BIT0353
if(strlen(a)==strlen(b)&&strlen(b)==strlen(c)&&strlen(c)==strlen(d)
){
length = strlen(a);
char carry='0';
for (j=0;j<3;j++)
{
for(i=length-1;i>=0;i--)
{
if(a[i]=='0' && b[i]=='0' && carry=='0')
{
sum[i]='0';
carry='0';
}
else if(a[i]=='0' && b[i]=='0' && carry=='1')
{
sum[i]='1';
carry='0';
}
else if(a[i]=='0' && b[i]=='1' && carry=='0')
{
sum[i]='1';
carry='0';
}
else if(a[i]=='0' && b[i]=='1' && carry=='1')
{
sum[i]='0';
carry='1';
}
else if(a[i]=='1' && b[i]=='0' && carry=='0')
{
sum[i]='1';
carry='0';
}
else if(a[i]=='1' && b[i]=='0' && carry=='1')
{
9 |P a g e
AMAN RAJ 19BIT0353
sum[i]='0';
carry='1';
}
else if(a[i]=='1' && b[i]=='1' && carry=='0')
{
sum[i]='0';
carry='1';
}
else if(a[i]=='1' && b[i]=='1' && carry=='1')
{
sum[i]='1';
carry='1';
}
else
break;
}
if (j==0){
for (i=0;i<length;i++){
sumab[i]=sum[i];
}
for (i=0;i<length;i++){
a[i]=c[i];
}
for (i=0;i<length;i++){
b[i]=d[i];
}
}
if (j==1){
for (i=0;i<length;i++){
sumcd[i]=sum[i];
}
for (i=0;i<length;i++){
a[i]=sumab[i];
}
for (i=0;i<length;i++){
10 | P a g e
AMAN RAJ 19BIT0353
b[i]=sumcd[i];
}
}
if (j==2){
break;
}
}
for(i=0;i<length;i++)
{
if(sum[i]=='0')
complement[i]='1';
else
complement[i]='0';
}
if(carry=='1')
carry='0';
else
carry='1';
printf("\n Checksum=%c%s",carry,complement);
for(i=length-1;i>=0;i--)
{
if(sum[i]=='0' && complement[i]=='0' && carry=='0')
{
sum1[i]='0';
carry='0';
}
else if(sum[i]=='0' && complement[i]=='0' && carry=='1')
{
sum1[i]='1';
carry='0';
}
else if(sum[i]=='0' && complement[i]=='1' && carry=='0')
{
sum1[i]='1';
carry='0';
11 | P a g e
AMAN RAJ 19BIT0353
}
else if(sum[i]=='0' && complement[i]=='1' && carry=='1')
{
sum1[i]='0';
carry='1';
}
else if(sum[i]=='1' && complement[i]=='0' && carry=='0')
{
sum1[i]='1';
carry='0';
}
else if(sum[i]=='1' && complement[i]=='0' && carry=='1')
{
sum1[i]='0';
carry='1';
}
else if(sum[i]=='1' && complement[i]=='1' && carry=='0')
{
sum1[i]='0';
carry='1';
}
else if(sum[i]=='1' && complement[i]=='1' && carry=='1')
{
sum1[i]='1';
carry='1';
}
else
break;
}
for(i=0;i<length;i++)
{
if(sum1[i]=='0')
complement1[i]='1';
else
complement1[i]='0';
12 | P a g e
AMAN RAJ 19BIT0353
}
printf("\n RECIEVER SIDE: \n CHECKSUM =%c%s",carry,
complement1);
}
else {
printf("\nWrong input strings");
}
}
OUTPUT:-
C).
D).
13 | P a g e
AMAN RAJ 19BIT0353
Question 3.
A) .
CODE:-
#include<stdio.h>
#include<iostream>
#include<math.h>
using namespace std;
string toBin(long long int nu)
{
string bin = "";
while (nu){
if (nu & 1)
bin = "1" + bin;
else
bin = "0" + bin;
nu = nu>>1;
}
return bin;
}
14 | P a g e
AMAN RAJ 19BIT0353
15 | P a g e
AMAN RAJ 19BIT0353
int main(){
string dataword, generator;
dataword = "1010011110";
generator = "10111";
fun(dataword, generator);
return 0;
}
OUTPUT:-
B) .
#include<stdio.h>
#include<iostream>
#include<math.h>
16 | P a g e
AMAN RAJ 19BIT0353
nu = nu>>1;
}
return bin;
}
long long int toDec(string bin){
long long int num = 0;
for (int i=0; i<bin.length(); i++){
if (bin.at(i)=='1')
num += 1 << (bin.length() - i - 1);
}
return num;
}
void fun(string dataword, string generator){
int lgen = generator.length();
long long int gen = toDec(generator);
17 | P a g e
AMAN RAJ 19BIT0353
int main()
{
string dataword, generator;
dataword = "10100111101010";
generator = "10111";
fun(dataword, generator);
return 0;
}
OUTPUT:-
INFERENCE:-
Since here remainder is null of that means the codeword received
at their end is correct( no error).
18 | P a g e