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: <EOS>