# Solidity explanation part I

By [Codorrr](https://paragraph.com/@codorrr) · 2022-06-19

---

_// SPDX-License-Identifier: MIT_

pragma solidity ^0.8.13; contract Primitives { bool public boo = true; _/\* uint stands for unsigned integer, meaning non negative integers different sizes are available uint8 ranges from 0 to 2 \*\* 8 - 1 uint16 ranges from 0 to 2 \*\* 16 - 1 ... uint256 ranges from 0 to 2 \*\* 256 - 1 \*/_ uint8 public u8 = 1; uint public u256 = 456; uint public u = 123; _// uint is an alias for uint256_ _/\* Negative numbers are allowed for int types. Like uint, different ranges are available from int8 to int256 int256 ranges from -2 \*\* 255 to 2 \*\* 255 - 1 int128 ranges from -2 \*\* 127 to 2 \*\* 127 - 1 \*/_ int8 public i8 = -1; int public i256 = 456; int public i = -123; _// int is same as int256_ _// minimum and maximum of int_ int public minInt = type(int).min; int public maxInt = type(int).max; address public addr = 0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c; _/\* In Solidity, the data type byte represent a sequence of bytes. Solidity presents two type of bytes types : - fixed-sized byte arrays - dynamically-sized byte arrays. The term bytes in Solidity represents a dynamic array of bytes. It’s a shorthand for byte\[\] . \*/_ bytes1 a = 0xb5; _// \[10110101\]_ bytes1 b = 0x56; _// \[01010110\]_ _// Default values_ _// Unassigned variables have a default value_ bool public defaultBoo; _// false_ uint public defaultUint; _// 0_ int public defaultInt; _// 0_ address public defaultAddr; _// 0x0000000000000000000000000000000000000000_ }

---

*Originally published on [Codorrr](https://paragraph.com/@codorrr/solidity-explanation-part-i)*
