A method for encoding and decoding of a current quasi-cyclic low-density parity-check, QC-LDPC, code with a current code length N current from a set of code lengths N 1, N 2,...,N k, N max using a current lifted matrix H current of the current QC-LDPC code with a current circulant shift size Z current, the current lifted matrix H current of the current QC-LDPC code being obtained by floor scale modulator lifting of a base matrix, the base matrix being the matrix of circulant shift values E ( H upper) for a QC-LDPC code with the maximal code length N max and a maximal circulant size Z upper N max = Z upper ∗ L, wherein L is the number of columns of the base matrix, the method comprising: • lifting the base matrix of the QC-LDPC code with the maximal code length N max and the maximal circulant size Z upper to obtain a lifted matrix H upper; • generating, for each of circulant shift sizes Z 1, Z 2,...,Z upper, an optimal value r using the lifted matrix H upper by determining a family of parity check matrices and selecting an optimal value r based on the family of parity check matrices by multi-parameter filtering, wherein the multi-parameter filtering includes at least one of: Extrinsic Message Degree, ACE Spectrum, Tanner Spectral Bound, Code Distance, Codeword's weight spectrum enumerator, Trapping Set Weight Enumerator, simulation results, 1 ≤ r ≤ Z upper - 1 with r being an integer and GCD (r, Z upper) = 1, • saving the generated plurality of optimal values r of the plurality of circulant shift sizes Z 1, Z 2,..., Z upper and the lifted matrix H upper in a memory unit; • receiving the current circulant Z current among the plurality of circulant shift sizes Z 1, Z 2,..., Z upper; • selecting a current optimal value r current from the plurality of optimal values r stored in the memory unit corresponding to the current circulant Z current; and • lifting the base matrix based on the current optimal value r current to obtain the current lifted matrix H current, wherein the floor scale modular lifting of the base matrix is calculated as: E H current = ⌊ Z current Z upper E H upper * r current mod Z upper ⌋, wherein r current =1 is excluded. • lifting the base matrix of the QC-LDPC code with the maximal code length N max and the maximal circulant size Z upper to obtain a lifted matrix H upper; • generating, for each of circulant shift sizes Z 1, Z 2,...,Z upper, an optimal value r using the lifted matrix H upper by determining a family of parity check matrices and selecting an optimal value r based on the family of parity check matrices by multi-parameter filtering, wherein the multi-parameter filtering includes at least one of: Extrinsic Message Degree, ACE Spectrum, Tanner Spectral Bound, Code Distance, Codeword's weight spectrum enumerator, Trapping Set Weight Enumerator, simulation results, 1 ≤ r ≤ Z upper - 1 with r being an integer and GCD (r, Z upper) = 1, • saving the generated plurality of optimal values r of the plurality of circulant shift sizes Z 1, Z 2,..., Z upper and the lifted matrix H upper in a memory unit; • receiving the current circulant Z current among the plurality of circulant shift sizes Z 1, Z 2,..., Z upper; • selecting a current optimal value r current from the plurality of optimal values r stored in the memory unit corresponding to the current circulant Z current; and • lifting the base matrix based on the current optimal value r current to obtain the current lifted matrix H current, wherein the floor scale modular lifting of the base matrix is calculated as: