کتابخانه‌ی استاندارد · کدگذاری و داده

دودویی encoding/binary

نوشتن و خواندن عددها به شکل بایت، با ترتیب بزرگ‌انتها یا کوچک‌انتها.

واردسازی کدگذاری.دودویی

قالب‌های دودویی پرونده و پروتکل‌های شبکه هر عدد را با تعداد ثابتی بایت و به ترتیبی ثابت ذخیره می‌کنند. این بسته چنین فیلدهایی را می‌نویسد و می‌خواند: عددهای صحیح ۸، ۱۶، ۳۲ و ۶۴ بیتی، با علامت یا بی‌علامت، و عددهای اعشاری ۳۲ یا ۶۴ بیتی IEEE 754. بزرگ‌انتها (BE) پرارزش‌ترین بایت را اول می‌گذارد و ترتیب رایج در شبکه و در PNG است؛ کوچک‌انتها (LE) برعکس است و همان چیزی است که پردازنده‌های x86 و ARM و قالب‌هایی مثل ZIP و WAV به کار می‌برند.

تابع‌های نوشتن به یک بافر بایت می‌افزایند و تابع‌های خواندن یک خواننده بایت را جلو می‌برند؛ هر دو از بسته‌ی فشرده سازی می‌آیند که افزودن بایت‌ها و خواندن بایت‌ها را هم برای رشته‌های خام بایت، مثل عدد جادویی، دارد. این بسته را وقتی به کار ببرید که چینش داده را یک مشخصات یا خودتان ثابت کرده‌اید. برای داده‌ای که خودش را توصیف می‌کند مسج‌پک یا پروتوباف مناسب است و برای متن هگز یا Base64، بسته‌ی کدگذاری.

اشتباه‌های رایج

  • خواندن پس از پایان برنامه را متوقف نمی‌کند. بایت‌هایی که نیستند صفر خوانده می‌شوند و فیلد bad خواننده درست می‌شود و درست می‌ماند. یک رکورد کامل را بخوانید و بعد یک بار خ.bad را بررسی کنید، همان‌طور که راهنمای نخست می‌کند؛ یا پیش از خواندن فشرده سازی.باقیمانده را ببینید.
  • مقدارهای بی‌علامت ۳۲ بیتی در یک صحیح برمی‌گردند که علامت‌دار است، پس مقدارهای ۲٬۱۴۷٬۴۸۳٬۶۴۸ به بالا منفی دیده می‌شوند. خواندن طبیعی۳۲ بزرگ‌انتها و خواندن صحیح۳۲ بزرگ‌انتها همان بیت‌ها را برمی‌گردانند. با (v برگردان صحیح۶۴) & 4294967295 پهنش کنید.
  • بی‌علامت ۶۴ بیتی هم یک صحیح۶۴ است، پس مقدارهای بیش از ۹٬۲۲۳٬۳۷۲٬۰۳۶٬۸۵۴٬۷۷۵٬۸۰۷ منفی می‌شوند.
  • تابع‌های نوشتن بازه را بررسی نمی‌کنند. نوشتن ۳۰۰ با نوشتن طبیعی۸ عدد ۴۴ را می‌نویسد، یعنی ۸ بیت پایینی را.
  • گزینه‌های دودویی هنوز در هیچ تابعی به کار نمی‌رود؛ تابع‌های اعشاری به جایش یک مقدار منطقی big_endian می‌گیرند و تابع‌های صحیح ترتیب را در نامشان دارند.

راهنما: قالب پرونده‌ی خودتان

یک قالب دودویی معمولاً با چند بایت جادویی شروع می‌شود که آن را شناسایی می‌کنند، سپس شماره‌ی نسخه و تعداد، و بعد رکوردها. هر فیلد را با تابع اندازه و ترتیب بایت خودش بنویسید و دقیقاً به همان ترتیب بخوانید. فشرده سازی.افزودن بایت‌ها متنی ثابت مثل بایت‌های جادویی را می‌نویسد و فشرده سازی.خواندن بایت‌ها آن را می‌خواند.

encoding-binary-guide-header.salam
واردسازی کدگذاری.دودویی
واردسازی فشرده سازی
واردسازی رشته

تابع نوشتن پرونده(امتیازها: وکتور<صحیح>): فشرده سازی.بافر بایت:
    ناپایا ب := فشرده سازی.بافر بایت جدید()
    فشرده سازی.افزودن بایت‌ها(ب، "SLM1" برگردان تهی*، ۴)
    دودویی.نوشتن طبیعی۱۶ کوچک‌انتها(ب، ۲)
    دودویی.نوشتن طبیعی۳۲ کوچک‌انتها(ب، امتیازها.طول())
    هر ا در امتیازها:
        دودویی.نوشتن صحیح۳۲ کوچک‌انتها(ب، ا)
    پایان
    برگشت ب
پایان

تابع خواندن پرونده(داده: فشرده سازی.بافر بایت، اندازه: صحیح): رشته:
    ناپایا خ := فشرده سازی.خواننده بایت جدید(داده.داده، اندازه)
    ناپایا سر := فشرده سازی.خواندن بایت‌ها(خ، ۴)
    دیرکن فشرده سازی.آزادسازی بافر(سر)
    اگر فشرده سازی.بافر به رشته(سر) != "SLM1": برگشت "پرونده‌ی ما نیست" پایان
    نسخه := دودویی.خواندن طبیعی۱۶ کوچک‌انتها(خ)
    اگر نسخه != ۲: برگشت "نسخه‌ی ناشناخته‌ی " + رشته.از عدد(نسخه) پایان
    تعداد := دودویی.خواندن طبیعی۳۲ کوچک‌انتها(خ)
    اگر تعداد < ۰ یا تعداد > ۱۰۰۰۰۰: برگشت "تعداد باورنکردنی" پایان
    ناپایا جمع := ۰ برگردان صحیح۶۴
    تکرار تعداد:
        جمع += دودویی.خواندن صحیح۳۲ کوچک‌انتها(خ) برگردان صحیح۶۴
    پایان
    اگر خ.خراب: برگشت "پس از " + رشته.از عدد(خ.جایگاه) + " بایت بریده شده" پایان
    برگشت رشته.از عدد(تعداد) + " امتیاز، جمع " + رشته.از عدد(جمع)
پایان

تابع ریشه:
    ناپایا امتیازها := وکتور {} برگردان وکتور<صحیح>
    امتیازها.بیفزا(۱۲۰)
    امتیازها.بیفزا(-۱۵)
    امتیازها.بیفزا(۹۸۰۰۰)
    ناپایا داده := نوشتن پرونده(امتیازها)
    سرچاپ "پرونده"، فشرده سازی.طول بافر(داده)، "بایت است"

    سرچاپ "کل پرونده:"، خواندن پرونده(داده، فشرده سازی.طول بافر(داده))
    سرچاپ "۱۸ بایت نخست:"، خواندن پرونده(داده، ۱۸)
    فشرده سازی.تنظیم بایت(داده، ۴، ۹)
    سرچاپ "ویرایش‌شده:"، خواندن پرونده(داده، فشرده سازی.طول بافر(داده))
    فشرده سازی.آزادسازی بافر(داده)
پایان
خروجیپرونده 22 بایت است کل پرونده: 3 امتیاز، جمع 98105 ۱۸ بایت نخست: پس از 18 بایت بریده شده ویرایش‌شده: نسخه‌ی ناشناخته‌ی 9

خواندن پرونده پیش از اعتماد به بقیه، بایت‌های جادویی و نسخه را بررسی می‌کند و تعدادی را که برای واقعی بودن زیادی بزرگ است رد می‌کند، تا پرونده‌ی خراب نتواند آن را به حلقه‌ای طولانی بیندازد. بعد همه‌ی رکوردها را می‌خواند و در پایان یک بار خ.bad را بررسی می‌کند: رونوشت ۱۸ بایتی فقط برای دو امتیاز از سه امتیاز جا دارد و خواننده همین را می‌گوید. تغییر بایت ۴ نسخه را ۹ می‌کند که پذیرفته نمی‌شود. برای کل قالب یک ترتیب بایت نگه دارید و آن را در توصیف قالب بنویسید.

راهنما: خواندن سرآیند یک قالب واقعی

PNG نمونه‌ی خوبی از قالب بزرگ‌انتهاست. پرونده با امضایی ۸ بایتی شروع می‌شود و سپس تکه‌ها می‌آیند که هر کدام یک طول ۴ بایتی، یک نوع ۴ حرفی و داده دارند. نخستین تکه، IHDR، پهنا و بلندی را به شکل عددهای ۳۲ بیتی بزرگ‌انتها نگه می‌دارد. برنامه همین بایت‌های نخست را خودش می‌سازد تا بدون پرونده اجرا شود؛ با یک تصویر واقعی، اول پرونده را در یک بافر بخوانید و تجزیه همین است.

encoding-binary-guide-png.salam
واردسازی کدگذاری.دودویی
واردسازی فشرده سازی

تابع پی ان جی ساختگی(): فشرده سازی.بافر بایت:
    ناپایا ب := فشرده سازی.بافر بایت جدید()
    امضا := [۱۳۷، ۸۰، ۷۸، ۷۱، ۱۳، ۱۰، ۲۶، ۱۰]
    هر ایکس در امضا:
        دودویی.نوشتن طبیعی۸(ب، ایکس)
    پایان
    دودویی.نوشتن طبیعی۳۲ بزرگ‌انتها(ب، ۱۳)
    فشرده سازی.افزودن بایت‌ها(ب، "IHDR" برگردان تهی*، ۴)
    دودویی.نوشتن طبیعی۳۲ بزرگ‌انتها(ب، ۱۲۸۰)
    دودویی.نوشتن طبیعی۳۲ بزرگ‌انتها(ب، ۷۲۰)
    دودویی.نوشتن طبیعی۸(ب، ۸)
    دودویی.نوشتن طبیعی۸(ب، ۶)
    برگشت ب
پایان

تابع ریشه:
    ناپایا تصویر := پی ان جی ساختگی()
    ناپایا خ := فشرده سازی.خواننده از بافر(تصویر)
    اگر دودویی.خواندن طبیعی۸(خ) != ۱۳۷ یا دودویی.خواندن طبیعی۸(خ) != ۸۰:
        سرچاپ "PNG نیست"
        برگشت ۱
    پایان
    تکرار ۶:
        _ := دودویی.خواندن طبیعی۸(خ)
    پایان
    طول تکه := دودویی.خواندن طبیعی۳۲ بزرگ‌انتها(خ)
    ناپایا نوع تکه := فشرده سازی.خواندن بایت‌ها(خ، ۴)
    سرچاپ "نخستین تکه:"، فشرده سازی.بافر به رشته(نوع تکه)، "با"، طول تکه، "بایت"
    پهنا := دودویی.خواندن طبیعی۳۲ بزرگ‌انتها(خ)
    بلندی := دودویی.خواندن طبیعی۳۲ بزرگ‌انتها(خ)
    سرچاپ "اندازه:"، پهنا، "x"، بلندی
    سرچاپ "عمق بیت:"، دودویی.خواندن طبیعی۸(خ)، "نوع رنگ:"، دودویی.خواندن طبیعی۸(خ)
    فشرده سازی.آزادسازی بافر(نوع تکه)
    فشرده سازی.آزادسازی بافر(تصویر)
پایان
خروجینخستین تکه: IHDR با 13 بایت اندازه: 1280 x 720 عمق بیت: 8 نوع رنگ: 6

راهنما: پیام‌های با پیشوند طول

یک اتصال TCP جریانی از بایت‌ها می‌رساند، نه پیام‌های جدا. راه معمول این است که هر پیام با طولش در جلو فرستاده شود، اینجا به شکل عددی ۱۶ بیتی بزرگ‌انتها. خواننده طول را می‌گیرد، با باقیمانده بررسی می‌کند که کل پیام رسیده و تنها آن وقت آن را می‌خواند.

encoding-binary-guide-frames.salam
واردسازی کدگذاری.دودویی
واردسازی فشرده سازی

تابع فرستادن(ب &: فشرده سازی.بافر بایت، پیام: رشته):
    دودویی.نوشتن طبیعی۱۶ بزرگ‌انتها(ب، پیام.طول())
    فشرده سازی.افزودن بایت‌ها(ب، پیام برگردان تهی*، پیام.طول())
پایان

تابع ریشه:
    ناپایا سیم := فشرده سازی.بافر بایت جدید()
    فرستادن(سیم، "HELLO")
    فرستادن(سیم، "سلام")
    فرستادن(سیم، "")
    فرستادن(سیم، "BYE")
    دودویی.نوشتن طبیعی۱۶ بزرگ‌انتها(سیم، ۱۰)
    فشرده سازی.افزودن بایت‌ها(سیم، "par" برگردان تهی*، ۳)
    سرچاپ "روی سیم:"، فشرده سازی.طول بافر(سیم)، "بایت"

    ناپایا خ := فشرده سازی.خواننده از بافر(سیم)
    تا فشرده سازی.باقیمانده(خ) >= ۲:
        ن := دودویی.خواندن طبیعی۱۶ بزرگ‌انتها(خ)
        اگر فشرده سازی.باقیمانده(خ) < ن:
            سرچاپ "قاب ناقص است، منتظر داده‌ی بیشتر بمانید"
            بشکن
        پایان
        ناپایا بدنه := فشرده سازی.خواندن بایت‌ها(خ، ن)
        سرچاپ ن، "بایت: [" + فشرده سازی.بافر به رشته(بدنه) + "]"
        فشرده سازی.آزادسازی بافر(بدنه)
    پایان
    فشرده سازی.آزادسازی بافر(سیم)
پایان
خروجیروی سیم: 29 بایت 5 بایت: [HELLO] 8 بایت: [سلام] 0 بایت: [] 3 بایت: [BYE] قاب ناقص است، منتظر داده‌ی بیشتر بمانید

طول بایت‌ها را می‌شمارد، پس سلام ۸ است، نه ۴. قاب آخر می‌گوید ۱۰ بایت دارد ولی فقط ۳ بایت رسیده؛ یک کارساز واقعی این بایت‌ها را نگه می‌دارد و وقتی داده‌ی بیشتری رسید دوباره تلاش می‌کند.

راهنما: اشتباه‌های ترتیب بایت و علامت

خواندن با ترتیب بایت نادرست شکست نمی‌خورد، فقط عدد نادرستی می‌دهد، پس این اشکال‌ها به آسانی از چشم می‌افتند. مقدارهای ۳۲ بیتی بی‌علامت دام دیگری‌اند: در یک صحیح برمی‌گردند، پس هر چیزی از ۲٬۱۴۷٬۴۸۳٬۶۴۸ به بالا منفی دیده می‌شود. آن را به صحیح۶۴ گسترش دهید و با پوشش بیت، مقدار بی‌علامت را بگیرید.

encoding-binary-guide-endian.salam
واردسازی کدگذاری.دودویی
واردسازی فشرده سازی
واردسازی رشته

تابع بایت‌های(ب: فشرده سازی.بافر بایت): رشته:
    ناپایا خروجی := ""
    تکرار فشرده سازی.طول بافر(ب) در ای:
        اگر ای > ۰:
            خروجی = خروجی + " "
        پایان
        خروجی = خروجی + رشته.از عدد(فشرده سازی.دریافت بایت(ب، ای))
    پایان
    برگشت خروجی
پایان

تابع ریشه:
    ناپایا بزرگ := فشرده سازی.بافر بایت جدید()
    دودویی.نوشتن طبیعی۳۲ بزرگ‌انتها(بزرگ، ۱۰۰۰)
    ناپایا کوچک := فشرده سازی.بافر بایت جدید()
    دودویی.نوشتن طبیعی۳۲ کوچک‌انتها(کوچک، ۱۰۰۰)
    سرچاپ "۱۰۰۰ بزرگ‌انتها: "، بایت‌های(بزرگ)
    سرچاپ "۱۰۰۰ کوچک‌انتها:"، بایت‌های(کوچک)

    ناپایا خ := فشرده سازی.خواننده از بافر(کوچک)
    سرچاپ "خواندن با ترتیب نادرست:"، دودویی.خواندن طبیعی۳۲ بزرگ‌انتها(خ)

    ناپایا همه یک := فشرده سازی.بافر بایت جدید()
    دودویی.نوشتن طبیعی۳۲ بزرگ‌انتها(همه یک، -۱)
    ناپایا خ۲ := فشرده سازی.خواننده از بافر(همه یک)
    م := دودویی.خواندن طبیعی۳۲ بزرگ‌انتها(خ۲)
    سرچاپ "u32 0xFFFFFFFF به شکل صحیح:"، م، "بی علامت:"، (م برگردان صحیح۶۴) & ۴۲۹۴۹۶۷۲۹۵

    ناپایا خ۳ := فشرده سازی.خواننده از بافر(بزرگ)
    _ := دودویی.خواندن طبیعی۳۲ بزرگ‌انتها(خ۳)
    سرچاپ "بایت‌های مانده پس از خواندن:"، فشرده سازی.باقیمانده(خ۳)

    فشرده سازی.آزادسازی بافر(همه یک)
    فشرده سازی.آزادسازی بافر(کوچک)
    فشرده سازی.آزادسازی بافر(بزرگ)
پایان
خروجی۱۰۰۰ بزرگ‌انتها: 0 0 3 232 ۱۰۰۰ کوچک‌انتها: 232 3 0 0 خواندن با ترتیب نادرست: -402456576 u32 0xFFFFFFFF به شکل صحیح: -1 بی علامت: 4294967295 بایت‌های مانده پس از خواندن: 0

خواندن پس از پایان داده هم برنامه را متوقف نمی‌کند: بایت‌هایی که نیستند صفر خوانده می‌شوند و خ.bad درست می‌شود. وقتی ورودی از بیرون می‌آید، پس از هر رکورد خ.bad را، یا پیش از آن فشرده سازی.باقیمانده را بررسی کنید، همان‌طور که نمونه‌ی قاب‌ها می‌کند.

گونه‌ها

گزینه‌های دودویی BinaryOptions

ساختار گزینه‌های دودویی
گزینه‌های ترتیب بایت. هنوز هیچ تابعی در این بسته این ساختار را نمی‌گیرد.
نامانگلیسیگونهتوضیح
بزرگ‌انتهاbig_endianمنطقی = نادرستاگر درست باشد بزرگ‌انتها؛ پیش‌فرض نادرست.
encoding-binary-ReadWrite.salam
واردسازی کدگذاری.دودویی
واردسازی فشرده سازی

تابع ریشه:
    ناپایا ب := فشرده سازی.بافر بایت جدید()
    دودویی.نوشتن طبیعی۸(ب، ۲۵۵)
    دودویی.نوشتن طبیعی۱۶ بزرگ‌انتها(ب، ۴۶۶۰)
    دودویی.نوشتن طبیعی۱۶ کوچک‌انتها(ب، ۴۶۶۰)
    دودویی.نوشتن طبیعی۳۲ بزرگ‌انتها(ب، ۱)
    دودویی.نوشتن صحیح۱۶ کوچک‌انتها(ب، -۲)
    سرچاپ فشرده سازی.بافر به پایه۶۴(ب)
    دودویی.نوشتن طبیعی۳۲ کوچک‌انتها(ب، ۷)
    دودویی.نوشتن طبیعی۶۴ بزرگ‌انتها(ب، ۸)
    دودویی.نوشتن طبیعی۶۴ کوچک‌انتها(ب، ۹)
    دودویی.نوشتن صحیح۱۶ بزرگ‌انتها(ب، -۳)
    دودویی.نوشتن صحیح۳۲ بزرگ‌انتها(ب، -۴)
    دودویی.نوشتن صحیح۳۲ کوچک‌انتها(ب، -۵)
    دودویی.نوشتن صحیح۶۴ بزرگ‌انتها(ب، -۶)
    دودویی.نوشتن صحیح۶۴ کوچک‌انتها(ب، -۷)
    دودویی.نوشتن اعشار۶۴(ب، ۱.۵، درست)
    دودویی.نوشتن اعشار۳۲(ب، ۰.۲۵، نادرست)
    سرچاپ فشرده سازی.طول بافر(ب)
    ناپایا خ := فشرده سازی.خواننده از بافر(ب)
    سرچاپ دودویی.خواندن طبیعی۸(خ)، دودویی.خواندن طبیعی۱۶ بزرگ‌انتها(خ)، دودویی.خواندن طبیعی۱۶ کوچک‌انتها(خ)، دودویی.خواندن طبیعی۳۲ بزرگ‌انتها(خ)، دودویی.خواندن صحیح۱۶ کوچک‌انتها(خ)
    سرچاپ دودویی.خواندن طبیعی۳۲ کوچک‌انتها(خ)، دودویی.خواندن طبیعی۶۴ بزرگ‌انتها(خ)، دودویی.خواندن طبیعی۶۴ کوچک‌انتها(خ)
    سرچاپ دودویی.خواندن صحیح۱۶ بزرگ‌انتها(خ)، دودویی.خواندن صحیح۳۲ بزرگ‌انتها(خ)، دودویی.خواندن صحیح۳۲ کوچک‌انتها(خ)، دودویی.خواندن صحیح۶۴ بزرگ‌انتها(خ)، دودویی.خواندن صحیح۶۴ کوچک‌انتها(خ)
    سرچاپ دودویی.خواندن اعشار۶۴(خ، درست)، دودویی.خواندن اعشار۳۲(خ، نادرست)
    گ := دودویی.گزینه‌های دودویی {}
    سرچاپ گ.بزرگ‌انتها
    فشرده سازی.آزادسازی بافر(ب)
پایان
خروجی/xI0NBIAAAAB/v8= 69 255 4660 4660 1 -2 7 8 9 -3 -4 -5 -6 -7 1.5 0.25 false

تابع‌ها

نوشتن طبیعی۸ WriteU8

تابع نوشتن طبیعی۸(b &: compress.ByteBuf، v: صحیح)
یک بایت می‌نویسد: ۸ بیت پایینی v.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

نوشتن طبیعی۱۶ بزرگ‌انتها WriteU16BE

تابع نوشتن طبیعی۱۶ بزرگ‌انتها(b &: compress.ByteBuf، v: صحیح)
عدد بدون علامت ۱۶ بیتی را بزرگ‌انتها (پرارزش‌ترین بایت اول) می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

نوشتن طبیعی۱۶ کوچک‌انتها WriteU16LE

تابع نوشتن طبیعی۱۶ کوچک‌انتها(b &: compress.ByteBuf، v: صحیح)
عدد بدون علامت ۱۶ بیتی را کوچک‌انتها (کم‌ارزش‌ترین بایت اول) می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

نوشتن طبیعی۳۲ بزرگ‌انتها WriteU32BE

تابع نوشتن طبیعی۳۲ بزرگ‌انتها(b &: compress.ByteBuf، v: صحیح)
عدد بدون علامت ۳۲ بیتی را بزرگ‌انتها (پرارزش‌ترین بایت اول) می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

نوشتن طبیعی۳۲ کوچک‌انتها WriteU32LE

تابع نوشتن طبیعی۳۲ کوچک‌انتها(b &: compress.ByteBuf، v: صحیح)
عدد بدون علامت ۳۲ بیتی را کوچک‌انتها (کم‌ارزش‌ترین بایت اول) می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

نوشتن طبیعی۶۴ بزرگ‌انتها WriteU64BE

تابع نوشتن طبیعی۶۴ بزرگ‌انتها(b &: compress.ByteBuf، v: صحیح۶۴)
عدد بدون علامت ۶۴ بیتی را بزرگ‌انتها (پرارزش‌ترین بایت اول) می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

نوشتن طبیعی۶۴ کوچک‌انتها WriteU64LE

تابع نوشتن طبیعی۶۴ کوچک‌انتها(b &: compress.ByteBuf، v: صحیح۶۴)
عدد بدون علامت ۶۴ بیتی را کوچک‌انتها (کم‌ارزش‌ترین بایت اول) می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

نوشتن صحیح۱۶ بزرگ‌انتها WriteI16BE

تابع نوشتن صحیح۱۶ بزرگ‌انتها(b &: compress.ByteBuf، v: صحیح)
عدد علامت‌دار ۱۶ بیتی را بزرگ‌انتها (پرارزش‌ترین بایت اول) می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

نوشتن صحیح۱۶ کوچک‌انتها WriteI16LE

تابع نوشتن صحیح۱۶ کوچک‌انتها(b &: compress.ByteBuf، v: صحیح)
عدد علامت‌دار ۱۶ بیتی را کوچک‌انتها (کم‌ارزش‌ترین بایت اول) می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

نوشتن صحیح۳۲ بزرگ‌انتها WriteI32BE

تابع نوشتن صحیح۳۲ بزرگ‌انتها(b &: compress.ByteBuf، v: صحیح)
عدد علامت‌دار ۳۲ بیتی را بزرگ‌انتها (پرارزش‌ترین بایت اول) می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

نوشتن صحیح۳۲ کوچک‌انتها WriteI32LE

تابع نوشتن صحیح۳۲ کوچک‌انتها(b &: compress.ByteBuf، v: صحیح)
عدد علامت‌دار ۳۲ بیتی را کوچک‌انتها (کم‌ارزش‌ترین بایت اول) می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

نوشتن صحیح۶۴ بزرگ‌انتها WriteI64BE

تابع نوشتن صحیح۶۴ بزرگ‌انتها(b &: compress.ByteBuf، v: صحیح۶۴)
عدد علامت‌دار ۶۴ بیتی را بزرگ‌انتها (پرارزش‌ترین بایت اول) می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

نوشتن صحیح۶۴ کوچک‌انتها WriteI64LE

تابع نوشتن صحیح۶۴ کوچک‌انتها(b &: compress.ByteBuf، v: صحیح۶۴)
عدد علامت‌دار ۶۴ بیتی را کوچک‌انتها (کم‌ارزش‌ترین بایت اول) می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

نوشتن اعشار۶۴ WriteF64

تابع نوشتن اعشار۶۴(b &: compress.ByteBuf، v: اعشار۶۴، big_endian: منطقی)
عدد اعشاری ۶۴ بیتی IEEE 754 را می‌نویسد؛ big_endian ترتیب بایت را تعیین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

نوشتن اعشار۳۲ WriteF32

تابع نوشتن اعشار۳۲(b &: compress.ByteBuf، v: اعشار۶۴، big_endian: منطقی)
عدد اعشاری ۳۲ بیتی را می‌نویسد؛ هنگام نوشتن، دقت به ۳۲ بیت کم می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

خواندن طبیعی۸ ReadU8

تابع خواندن طبیعی۸(r &: compress.ByteReader): صحیح
یک بایت، از ۰ تا ۲۵۵، می‌خواند؛ پس از پایان داده صفر می‌دهد و r.bad را درست می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

خواندن طبیعی۱۶ بزرگ‌انتها ReadU16BE

تابع خواندن طبیعی۱۶ بزرگ‌انتها(r &: compress.ByteReader): صحیح
عدد بدون علامت ۱۶ بیتی را بزرگ‌انتها (پرارزش‌ترین بایت اول) می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

خواندن طبیعی۱۶ کوچک‌انتها ReadU16LE

تابع خواندن طبیعی۱۶ کوچک‌انتها(r &: compress.ByteReader): صحیح
عدد بدون علامت ۱۶ بیتی را کوچک‌انتها (کم‌ارزش‌ترین بایت اول) می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

خواندن طبیعی۳۲ بزرگ‌انتها ReadU32BE

تابع خواندن طبیعی۳۲ بزرگ‌انتها(r &: compress.ByteReader): صحیح
عدد ۳۲ بیتی را بزرگ‌انتها (پرارزش‌ترین بایت اول) می‌خواند. خروجی یک صحیح است، پس مقدارهای ۲۳۱ به بالا منفی برمی‌گردند؛ با (v برگردان صحیح۶۴) & 4294967295 آن را بی‌علامت کنید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

خواندن طبیعی۳۲ کوچک‌انتها ReadU32LE

تابع خواندن طبیعی۳۲ کوچک‌انتها(r &: compress.ByteReader): صحیح
عدد ۳۲ بیتی را کوچک‌انتها (کم‌ارزش‌ترین بایت اول) می‌خواند. مثل خواندن طبیعی۳۲ بزرگ‌انتها، مقدارهای ۲۳۱ به بالا منفی برمی‌گردند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

خواندن طبیعی۶۴ بزرگ‌انتها ReadU64BE

تابع خواندن طبیعی۶۴ بزرگ‌انتها(r &: compress.ByteReader): صحیح۶۴
عدد بدون علامت ۶۴ بیتی را بزرگ‌انتها (پرارزش‌ترین بایت اول) می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

خواندن طبیعی۶۴ کوچک‌انتها ReadU64LE

تابع خواندن طبیعی۶۴ کوچک‌انتها(r &: compress.ByteReader): صحیح۶۴
عدد بدون علامت ۶۴ بیتی را کوچک‌انتها (کم‌ارزش‌ترین بایت اول) می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

خواندن صحیح۱۶ بزرگ‌انتها ReadI16BE

تابع خواندن صحیح۱۶ بزرگ‌انتها(r &: compress.ByteReader): صحیح
عدد علامت‌دار ۱۶ بیتی را بزرگ‌انتها (پرارزش‌ترین بایت اول) می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

خواندن صحیح۱۶ کوچک‌انتها ReadI16LE

تابع خواندن صحیح۱۶ کوچک‌انتها(r &: compress.ByteReader): صحیح
عدد علامت‌دار ۱۶ بیتی را کوچک‌انتها (کم‌ارزش‌ترین بایت اول) می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

خواندن صحیح۳۲ بزرگ‌انتها ReadI32BE

تابع خواندن صحیح۳۲ بزرگ‌انتها(r &: compress.ByteReader): صحیح
عدد علامت‌دار ۳۲ بیتی را بزرگ‌انتها (پرارزش‌ترین بایت اول) می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

خواندن صحیح۳۲ کوچک‌انتها ReadI32LE

تابع خواندن صحیح۳۲ کوچک‌انتها(r &: compress.ByteReader): صحیح
عدد علامت‌دار ۳۲ بیتی را کوچک‌انتها (کم‌ارزش‌ترین بایت اول) می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

خواندن صحیح۶۴ بزرگ‌انتها ReadI64BE

تابع خواندن صحیح۶۴ بزرگ‌انتها(r &: compress.ByteReader): صحیح۶۴
عدد علامت‌دار ۶۴ بیتی را بزرگ‌انتها (پرارزش‌ترین بایت اول) می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

خواندن صحیح۶۴ کوچک‌انتها ReadI64LE

تابع خواندن صحیح۶۴ کوچک‌انتها(r &: compress.ByteReader): صحیح۶۴
عدد علامت‌دار ۶۴ بیتی را کوچک‌انتها (کم‌ارزش‌ترین بایت اول) می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

خواندن اعشار۶۴ ReadF64

تابع خواندن اعشار۶۴(r &: compress.ByteReader، big_endian: منطقی): اعشار۶۴
عدد اعشاری ۶۴ بیتی IEEE 754 را می‌خواند؛ big_endian ترتیب بایت را تعیین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam

خواندن اعشار۳۲ ReadF32

تابع خواندن اعشار۳۲(r &: compress.ByteReader، big_endian: منطقی): اعشار۶۴
عدد اعشاری ۳۲ بیتی را می‌خواند و آن را به‌صورت اعشار ۶۴ بیتی برمی‌گرداند؛ big_endian ترتیب بایت را تعیین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-binary-ReadWrite.salam