examples/overflows.c
Rama main · réplica de lectura del repositorio original.
// printing overflows of 64-bit integers in C*
// libcstar procedures for printing
void init_library();
void print(uint64_t* s);
void print_unsigned_integer(uint64_t n);
void print_integer(uint64_t n);
void print_hexadecimal(uint64_t n, uint64_t a);
void print_octal(uint64_t n, uint64_t a);
void print_binary(uint64_t n, uint64_t a);
void println();
uint64_t main() {
// initialize selfie's libcstar library
init_library();
// print UINT64_MAX+1 in decimal
print("UINT64_MAX+1 in decimal: ");
print_unsigned_integer(UINT64_MAX+1);
println();
// print UINT64_MAX+1 in hexadecimal
print("UINT64_MAX+1 in hexadecimal: ");
print_hexadecimal(UINT64_MAX+1, 0);
println();
// print UINT64_MAX+1 in octal
print("UINT64_MAX+1 in octal: ");
print_octal(UINT64_MAX+1, 0);
println();
// print UINT64_MAX+1 in binary
print("UINT64_MAX+1 in binary: ");
print_binary(UINT64_MAX+1, 64);
println();
// print 0-1 in decimal
print("0-1 in decimal: ");
print_integer(0-1);
print(" (as signed 64-bit integer)\n");
// print 0-1 in decimal
print("0-1 in decimal: ");
print_unsigned_integer(0-1);
print(" (as unsigned integer)\n");
// print 0-1 in hexadecimal
print("0-1 in hexadecimal: ");
print_hexadecimal(0-1, 0);
println();
// print 0-1 in octal
print("0-1 in octal: ");
print_octal(0-1, 0);
println();
// print 0-1 in binary
print("0-1 in binary: ");
print_binary(0-1, 64);
println();
// print INT64_MAX+1 in decimal
print("INT64_MAX+1 in decimal: ");
print_integer(INT64_MAX+1);
print(" (as signed 64-bit integer)\n");
// print INT64_MAX+1 in decimal
print("INT64_MAX+1 in decimal: ");
print_unsigned_integer(INT64_MAX+1);
print(" (as unsigned integer)\n");
// print INT64_MAX+1 in hexadecimal
print("INT64_MAX+1 in hexadecimal: ");
print_hexadecimal(INT64_MAX+1, 0);
println();
// print INT64_MAX+1 in octal
print("INT64_MAX+1 in octal: ");
print_octal(INT64_MAX+1, 0);
println();
// print INT64_MAX+1 in binary
print("INT64_MAX+1 in binary: ");
print_binary(INT64_MAX+1, 64);
println();
// print INT64_MIN-1 in decimal
print("INT64_MIN-1 in decimal: ");
print_integer(INT64_MIN-1);
print(" (as signed 64-bit integer)\n");
// print INT64_MIN-1 in decimal
print("INT64_MIN-1 in decimal: ");
print_unsigned_integer(INT64_MIN-1);
print(" (as unsigned integer)\n");
// print INT64_MIN-1 in hexadecimal
print("INT64_MIN-1 in hexadecimal: ");
print_hexadecimal(INT64_MIN-1, 0);
println();
// print INT64_MIN-1 in octal
print("INT64_MIN-1 in octal: ");
print_octal(INT64_MIN-1, 0);
println();
// print INT64_MIN-1 in binary
print("INT64_MIN-1 in binary: ");
print_binary(INT64_MIN-1, 64);
println();
}