فرستادن عدد های اسکی چند رقمه

مهندس جان میدونیم که اعداد 0 تا 9 رو وقتی اسکیشون رو میفرستیم در واقع کاراکترشون رو میفرستیم و در واقع یک عدد دسیمال یا هگز هستند.اما وقتی یه اسکی چند رقمی مثلا 223 رو میفرستیم به صورت اسکی ، ترمینال یا میکرو چطوری عمل میکنه؟یعنی میاد اول 2 اسکی بعد 2 اسکی و بعد 3 اسکی رو میفرسته؟خب اگه اینطوری باشه ما داخل کد یه متغییر کاراکتر تعیین کردیم که از 0 تا255 دسیمال میتونه توش نوشته بشه.وقتی 2 اسکی رو مینویسم یه مقدار دسیمال داخل متغیر نوشته میشه.وقتی 2 اسکی دومی یا 3 اسکی فرستاده میشه اینا کجا میرن؟توی همون متغیر دوباره نوشته میشن؟عدد های دسیمالشون باهم جمع میشه؟!
2020-09-05/1599329105-763767-image.png

ممنونم مهندس

وقتی که شما یک متغیر دارید که مقدارش ۲۳۲ هست، اگر خود متغیر رو بفرستید، عدد ۲۳۲ ارسال میشه که از نظر کاراکتری بی معنا هست ولی گیرنده میتونه این عدد رو بگیره و باهاش کار کنه بدون اینکه نمایش بده.
وقتی که عدد ۲۳۲ رو با مثلا sprintf تبدیل به string می کنید و بعد ارسال می کنید، یک متغیر واسط باید بسازید (در آموزش معمولا اسمش رو buffer گذاشتیم) و معادل اسکی عدد های ۲ و ۳ و ۲ داخل اون نوشته میشه و بعد میکرو اون بافر رو بایت به بایت ارسال می کنه و ایندفعه مفهوم عدد ۲۳۲ از بین رفته ولی از نظر ظاهری، کاراکتر های ۲ و ۳ و ۲ کنار هم ارسال شدن و ۲۳۲ رو ساختن. حالا گیرنده می تونه این اعداد رو ببینه ولی فقط قیافه این اعداد درست هست و نمی تونید باهاش کار ریاضی کنید. (اگر خاطرتون باشه، در این حالت برای اینکه گیرنده بتونه از کاراکترهایی که دریافت کرده، به خود عدد ۲۳۲ برسه و بتونه کار ریاضی کنه، باید از دستور scanf استفاده کنید که برعکس کار sprintf رو انجام میده.)