Programming Languages - Types
Char in Programming Language
- Java: 2 bytes, 16 bits, unsigned(
[0, 65535]), unicode(UTF-16) - C/C++: 1 byte, 8 bits, ASCII
Go
bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // alias for uint8
rune // alias for int32
// represents a Unicode code point
float32 float64
complex64 complex128
The int, uint, and uintptr types are usually 32 bits wide on 32-bit systems and 64 bits wide on 64-bit systems.
When you need an integer value you should use
intunless you have a specific reason to use a sized or unsigned integer type.
The variable's type can be inferred from the value on the right hand side, depending on the precision of the constant.Check type:
v := 42
fmt.Printf("v is of type %T\n", v)
Type assertion: value.(string) asserts that value is a string, otherwise ok is false
if str, ok := value.(string); ok {
return str
} else if str, ok := value.(Stringer); ok {
return str.String()
}
Numerical Types
- byte: 8 bits, 0xFF
- short: 2 bytes, 16 bits, 0xFFFF
- int: 4 bytes, 32 bits, 0xFFFFFFFF
- long: 8 bytes, 64 bits,
int:
0xffffffff= -10x7fffffff= 21474836470x80000000= -2147483648
Java
- Primitives Types: always have a value, cannot be null, default to
falseor 0, 0.0f, etc- boolean 1
- byte 8
- short 16
- int 32
- long 64: 1L
- float 32: 1.0f
- double 64: 1.0d
- Reference Types: can be null
Java Byte.toUnsignedInt(): promote byte x to int by adding 1s to the front
public static int toUnsignedInt(byte x) {
return ((int) x) & 0xff;
}
Primitives
C++
- Signed values:
char,short,int,long,long long - Fixed width integer types (since C++11):
int8_t,int16_t,int32_t,int64_t - Unsigned values:
unsigned char,unsigned short,unsigned int,unsigned long,unsigned long long - Fixed width unsigned integer:
uint8_t,uint16_t,uint32_t,uint64_t - Floating point values:
float,double
Rust
- Signed:
char,i8,i16,i32,i64 - Unsigned:
u8,u16,u32,u64 - Floating point:
f32,f64
Java
- Signed:
byte,char,short,int,long - No unsigned values.
- Floating point:
float,double
Max / Min / Infinity
C++
int64_t max_int64_t = std::numeric_limits<int64_t>::max();
double inf = std::numeric_limits<double>::infinity();
Java
jshell> Integer.MAX_VALUE
$1 ==> 2147483647
jshell> Integer.MIN_VALUE
$2 ==> -2147483648
Double.POSITIVE_INFINITY;
Double.NEGATIVE_INFINITY;
JavaScript
> Number.MAX_SAFE_INTEGER
9007199254740991
> Number.MIN_SAFE_INTEGER
-9007199254740991
> Infinity
Infinity
> -Infinity
-Infinity
Python
>>> float('inf')
inf
>>> float('-inf')
-inf
From math:
>>> import math
>>> math.inf
inf
To Binary
Python
Use bin()
>>> bin(124)
'0b1111100'
Format
Java
DecimalFormat df = new DecimalFormat("#.###");
df.format(number);
Python
>>> "%02d" % 1
'01'
Add Padding
JavaScript
function addPadding(num, width) {
var str = num.toString();
while (str.length < width) {
str = '0' + str;
}
return str;
}