This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
notes:cprog:fall2022:projects:dtr0 [2022/09/08 02:30] – [DATA TYPES IN C] rspringe | notes:cprog:fall2022:projects:dtr0 [2022/09/08 02:44] (current) – [DATA TYPES IN C] rspringe | ||
---|---|---|---|
Line 13: | Line 13: | ||
For example: 1001 + 1 = 1010 | For example: 1001 + 1 = 1010 | ||
- | This is just like decimal, where a number starts at 0, then counts up to 9, if we try to count up after that, the number carries over to the tens place, and restarts at 0: | + | This is just like decimal, where a number starts at 0, then counts up to 9, if we try to count up after that, the number carries over to the Tens place, and restarts at 0: |
109 + 1 = 110 | 109 + 1 = 110 | ||
+ | |||
+ | **NOTE:** Just because a binary number uses similar digits to decimal and looks similar to decimal, it does not mean that a binary number can just be read as a decimal number. | ||
+ | |||
+ | To put it another way: | ||
+ | |||
+ | 1010< | ||
Since decimal is "Base 10", each place in a number is a power of ten, 10< | Since decimal is "Base 10", each place in a number is a power of ten, 10< | ||
Line 29: | Line 35: | ||
As stated above, each place in a binary number can only be a 1 or 0, which means each place is a power of 2. So a decimal number like 257 would be 100000001 in binary, as we can see, numbers can get very big, very fast. | As stated above, each place in a binary number can only be a 1 or 0, which means each place is a power of 2. So a decimal number like 257 would be 100000001 in binary, as we can see, numbers can get very big, very fast. | ||
- | With a number system where even simple numbers and code can become a massive amount of 1's and 0's, it is very difficult to perform calculations on these numbers without making a mistake. So, programmers have used higher base numbering systems to shorten these numbers down immensely, such as octal (Base 8), or hexadecimal (Base 16). | + | With a number system where even simple numbers and code can become a massive amount of 1's and 0's, it is very difficult to perform calculations on these numbers without making a mistake. So, programmers have used higher base numbering systems to shorten these numbers down immensely. These numbering systems are also powers of 2, in order to cleanly split binary numbers into smaller segments, such as octal (Base 8), or hexadecimal (Base 16). |
====HEXADECIMAL NUMBERS==== | ====HEXADECIMAL NUMBERS==== | ||
Line 38: | Line 44: | ||
--------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ||
- | ===Enumerated | + | ===Enumerated |
They are again arithmetic types and they are used to define variables that can only assign certain discrete integer values throughout the program. | They are again arithmetic types and they are used to define variables that can only assign certain discrete integer values throughout the program. | ||
--------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ||
- | ===The | + | ===The |
- | The type specifier void indicates that no value is available. | + | The type specifier |
--------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ||
- | ===Derived | + | ===Derived |
They include (a) Pointer types, (b) Array types, (c) Structure types, (d) Union types and (e) Function types. | They include (a) Pointer types, (b) Array types, (c) Structure types, (d) Union types and (e) Function types. |