# Barker Code using Bit Manipulation

**URL:** https://discourse.processing.org/t/barker-code-using-bit-manipulation/31265
**Category:** Gallery
**Created:** [July 15, 2021, 11:09am UTC](https://discourse.processing.org/t/barker-code-using-bit-manipulation/31265 "2021-07-15T11:09:54Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)
#### Post date: [July 15, 2021, 11:09am UTC](https://discourse.processing.org/t/barker-code-using-bit-manipulation/31265/1 "2021-07-15T11:09:54Z")

</div>

My efforts exploring Barker codes with bit manipulation.

It is not quite there yet and a first pass at this as my morning coding workout.

Reference image from here:  
_[https://www.radartutorial.eu/08.transmitters/pic/kor7.print.jpg](https://www.radartutorial.eu/08.transmitters/pic/kor7.print.jpg)_

 ![kor7.print](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/2X/0/0180a83bb52ed0bff7414a1c67e7cb1f35066bf2.jpeg)

Code:

```auto
// Barker Code using Bit Manipulation
// v1.0.0
// GLV 2021-07-15

//References:
// https://www.radartutorial.eu/08.transmitters/Barker%20Code.en.html
// https://www.radartutorial.eu/08.transmitters/pic/kor7.print.jpg
// https://en.wikipedia.org/wiki/Barker_code

// It is not quite there yet but a first pass at this as my morning coding workout.

void setup() 
	{
  size(600, 400);
  background(0);
    
// Some working Barker codes
  
  //int n = 7; 
  //int bo = 0b1110010;
  //int bm = 0b1111111;
  
  //int n = 11; 
  //int bo = 0b11100010010;
  //int bm = 0b11111111111;
  
  int n = 13; 
  int bo = 0b1111100110101;
  int bm = 0b1111111111111;  
  
  int b1 = bo<<n;
  
  println(binary(bo, 2*n));
  println(binary(b1, 2*n));
  
  int bx;
  int l;
  int sum;
  for (int s = 0; s<2*n+1; s++)
    {
    bx = (~(bo^(b1>>>s))) & ((bm<<n)>>>s);
    l = n-abs(s-n);
  
    sum = 0;
    for (int k = 0; k<n; k++)
      {
      sum += (bx>>>k)&0x01;  
      }
    
    int bs = abs(2*sum-l);
    //println(nfs(s, 2), binary(bx, n), l, sum, bs);
    println(nfs(s, 2), binary(bx, n), bs);
    
    strokeWeight(10);
    stroke(255, 255, 0);
    point(20*s+40, height-(20*bs+100));
    }
  }

```

Output:

![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/2X/b/bceaad267f6c8329ee265f09dd4f20ec4f153b11.png)

Console output:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/2X/b/b0a37e685c54c3d2e070e6d7957559209b41d306.png)

I am sharing code _as is_ as an example of bit manipulation for the Gallery.

I am not asking for help with this… it was just for fun!

`:)`
