#include <Arduino.h>
void shiftArray(uint8_t *a)
{
uint8_t temp, temp_scalar[32], carry = 0;
uint8_t current_bit[32] = {0};
memcpy(temp_scalar, a, 32);
for (int i = 255; i >=0 ; i--)
{
memcpy(a, temp_scalar, 32);
for (int k = i; k >=1 ; k--)
{
carry = 0;
for (int j = 31; j >= 0; j--)
{
temp = a[j];
a[j] = (carry << 7) | (a[j] >> 1);
carry = temp;
}
}
current_bit[0] = a[0] & 0x01;
Serial.print("current_bit =");
for (int j = 31; j >= 0; j--)
{
Serial.print(current_bit[j], BIN);
Serial.print(" ");
}
Serial.println(" ");
}
}
void setup() {
Serial.begin(9600);
uint8_t a[32] = {0};
a[0] = 5;
a[31] = 255;
Serial.print("a before the shifting =");
for (int i = 31; i >= 0; i--)
{
Serial.print(a[i], BIN);
Serial.print(" ");
}
Serial.println();
shiftArray(a);
Serial.print("a After the shifting =");
for (int i = 31; i >=0; i--)
{
Serial.print(a[i], HEX);
Serial.print(" ");
}
Serial.println();
}
void loop()
{
// Nothing to do here
}