// أعداد صحيحة بعرض ثابت وقيم ست عشرية وتحويل صريح بـ`مثل`، تطبع بالمكتبة.تنسيق
// عشرية وست عشرية وثنائية.
استورد المكتبة.تنسيق.fmt;
عرف الرئيسية(): عدد {
دع الصغير: ط8 = 0xFF;
دع الموسع: ط32 = (الصغير مثل ط32) + 1;
دع السالب: ص16 = -300;
دع الكبير: ط64 = (الموسع مثل ط64) * 1000000;
دع القناع: ط32 = 0x0F0F & 0x00FF;
دع ر: نتيجة طبيعي, خطأ_تنسيق = اطبع_سطرا_منسقا("{0} = {0:#x}\n{1}\n{2} = {2:#x} بست عشرة بتا\n{3}\n{4} = {4:#06x} = {4:#b}", [قيمة_تنسيق.ط8(الصغير), قيمة_تنسيق.ط32(الموسع), قيمة_تنسيق.ص16(السالب), قيمة_تنسيق.ط64(الكبير), قيمة_تنسيق.ط32(القناع)]);
أرجع 0;
}// Fixed-width integers, hexadecimal literals and explicit casts with `as`,
// printed with std.fmt in decimal, hexadecimal and binary.
import std.fmt.fmt;
def main(): int {
let small: u8 = 0xFF;
let widened: u32 = (small as u32) + 1;
let negative: i16 = -300;
let big: u64 = (widened as u64) * 1000000;
let mask: u32 = 0x0F0F & 0x00FF;
let r: result uint, fmt_error = println_fmt("{0} = {0:#x}\n{1}\n{2} = {2:#x} as 16 bits\n{3}\n{4} = {4:#06x} = {4:#b}", [fmt_arg.u8(small), fmt_arg.u32(widened), fmt_arg.i16(negative), fmt_arg.u64(big), fmt_arg.u32(mask)]);
return 0;
}
التشغيل
بالمفسر، دون ترجمة:
./build/sultanc run examples/ar/basics/integer_types.snأو ترجمه إلى ملف تنفيذي:
./build/sultanc examples/ar/basics/integer_types.sn -o build/example && ./build/example