What could every digit mean in software version? (for example, 1.7.1.0) How do you numerate your versions?
It differs from vendor to vendor really. Most commonly, they are (in order):
1.7.1.0 would this be the first maintenance release to the 1.7 version of the product.
Even defining what the difference between a major and minor release is, is difficult. Major releases normally include significant new features. Or the vendor just wants people to pay for the product again. Minor releases may include fixes and new features, but usually nothing ground breaking.
Some companies use the minor release bit to differentiate between alpha / beta releases and final releases. Odd numbers being pre-releases and even numbers being finals. 1.7 would be a beta of an upcoming 1.8 release. This habit is becoming less and less common though.
Build numbers increment with every release, no matter how minor the changes might be. It is automatically incremented by the build process, every time it runs. Many builds are never see publicly released, but they can help in managing the life cycle of the software, by making it easy for QA to uniquely identify a version of the software.