IPv6 works the same as IPv4 for purposes of IP assignment, routing, and more. But rather than use dotted decimal notation as we do with IPv4, this has been changed to a slightly different notation to prevent confusion. This notation swaps colons (:) for dots. It also changes from decimal to hexadecimal notation (to keep the numbers manageable), and just plain has more of them, specifically, it has 8 groups of them.
Now a couple of rules:
1. leading zeros may be dropped, so 05c0 becomes 5c0, and 0001 becomes 1
2. one time, and one time only, you may drop contiguous zeros completely and just use ::
Using the rules above, the IP 2001:05c0:9168:0000:0000:0000:0000:0001 becomes 2001:05c0:9168::1