# Elias Gamma Encoding in Python

• Last Updated : 10 Nov, 2021

The Elias gamma code is a universal code that is used to encode a sequence of positive integers. It is developed by Peter Elias. It is most useful when the upper bound of integers cannot be determined beforehand.

#### Steps in Encoding:

To encode a number X,

• Find the largest N, with (greater power of 2).

• Encode N using Unary coding(i.e N zeroes followed by a one).
• Append the integer using N digits in Binary.

Example: Let’s consider an example where we want to encode 10,
We can represent 10 as: .
Step1: Here, largest N = 3
Step2: N(=3) in Unary followed by a one = 0001
Step3: Now Representation of 2 in Binary using N(=3) digits = 010
So, Elias gamma encoding of 10 = 0001010

Below is the implementation of the above approach.

 # Python3 implementationfrom math import log  log2 = lambda x: log(x, 2)  def Unary(x):    return (x-1)*'0'+'1'  def Binary(x, l = 1):    s = '{0:0%db}' % l    return s.format(x)      def Elias_Gamma(x):    if(x == 0):         return '0'      n = 1 + int(log2(x))    b = x - 2**(int(log2(x)))      l = int(log2(x))      return Unary(n) + Binary(b, l)      print(Elias_Gamma(10))

Output:

0001010
My Personal Notes arrow_drop_up