Church numerals are quite beautiful. We use the symbols 1, 2, 3, 4, etc., but there's nothing intrinsic to those symbols that denotes what number they refer to.
Church numerals, on the other hand, do encode the actual numbers. A church numeral is simply a function that takes in two other functions as arguments, call them a and b, and applies a to b N number of times, where N is the numeral you're encoding.
So (using JS lambdas to demonstrate):
0 = (a, b) => b // applies a to b 0 times
1 = (a, b) => a(b) // applies a to b 1 time
2 = (a, b) => a(a(b)) // and so on...