Okay so I'm tryna create a program that:
(1) swaps my array
(2) performs caesar cipher substitution on the swapped array
(3) convert the array from (2) that is in decimal form into 8-bit binary form
And so far I've successfully done the first 2 parts but I'm facing problem with converting the array from decimal to binary form.
And this is my coding of what I've tried
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
void swapfrontback(int a[], int n);
int main()
{
    int a[10], i, n;
    cout << "enter size" << endl;
    cin >> n;
    if (n == 0)
    {
        cout << "Array is empty!\n";
    }
    else
    {
        cout << "p = " << endl;
        for (i = 0; i < n; i++)
        {
            cin >> a[i];
        }
     } 
     swapfrontback(a,n);
     
     //caesar cipher
     
     int shift = 0;
     cout << "input shift: ";
     cin >> shift;
     
     int modulus = 0;
     cout << "input modulus: ";
     cin >> modulus;
     
     cout << "p''=" << endl;
     
    for (i = 0; i < n; i++)
    {
        a[i] = (a[i] + shift) % modulus;
        cout << a[i] << endl;
    }
    
    // Function that convert Decimal to binary
     
    int b;
    b = 8;
    
    cout<< "p'''=" << endl;
    
    for (i = 0; i < n; i++)
    {
        
    for(int i=b-1;i>=0;i--)
    {
        
        if( a[i] & ( 1 << i ) ) cout<<1;
        else cout<<0;  
    }
    }
    
     return 0;
     
}
void swapfrontback(int a[], int n)
{
    int i, temp;
    for (i = 0; i < n / 2; i++)
    {
        temp = a[i];
        a[i] = a[n - i-1];
        a[n - i-1] = temp;
    }
    
    cout << "p' = '" << endl;
    
    for (i = 0; i < n; i++)
    {
        cout << a[i] << endl;
    }
}
the problem is that instead of converting the array of decimal from the 2nd part which is the caesar cipher into its binary form, I'm getting 000000010000000100000001 .
My initial array is
3
18
25
Shift 8 and modulo 26. If anyone knows how to fix this please do help me.
 
     
    