رفتن به مطلب
  • 0

تبدیل کاراکتر به کد اسکی


r.babazadeh

سوال

سلام

من از طریق بلوتوث از میکرو کنترلر یک سری دیتا در قالب کاراکتر میگیرم که ارزشی بین 0 تا 255 داره

تو ویندوز برای تبدیل کاراکتر ها به عدد مشکلی ندارم ولی تو اندروید بخاطر اینکه با کاراکتر بصورت ساین برخورد میکنه کاراکتر هایی که بیت 7 آونها یک باشه رو نمیتونه تبدیل کنه و اندروید کاراکتر ها رو دوبایتی در نظر میگیره در صورتی که دستور اسکی اندروید فقط یک باید رو برمیگردونه که میشه بیت 0 تا 127

 

 

 

دوستان راهکاری برای اینکه کاراکترها یک بایت در نظر گرفته بشه یا اسکی اون درست بشه و بین 0 تا 255 باشه دارید؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

5 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

میکرو کنترلر؟؟

اگه اشتباه نکنم شما دارید روبات میسازید درسته؟؟ (من خودم علاقه شدیدی به این دارم ، یه توضیح کوچیکی در موردش بدین ممنون میشم :gol: )

 

الان شما میخواین کاراکتر رو به کد اسکی تو B4A تبدیل کنید و طبق کد اسکی های کامپیوتر اینکارو میخواین انجام بدید؟؟

نمیدونم ، شاید بشه شرط گذاری کرد بین 0 تا 255 ... :fekr:  ، مثلا اگه حرف A بود طبق کد اسکی کامپیوتر تبدیلش به عدد مربوطه. :fekr:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

شما از دستور select case استفاده کن ببین جواب میده مثلا جلوی case ها همون کارکتر رو بنویس میتونی اون کارکتر رو با زدن دکمه alt به علاوه عدد اسکی از سمت راست کیبورد بنویسی مثلا

select str

case"☺"
دستور مورد نظر
case"☻"
دستور مورد نظر
case"♥"
دستور مورد نظر
end case

سلام این روش خیلی طولانیه بزرگه 

باعث میشه برنامه سنگین و تریسش سخت بشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

میکرو کنترلر؟؟

اگه اشتباه نکنم شما دارید روبات میسازید درسته؟؟ (من خودم علاقه شدیدی به این دارم ، یه توضیح کوچیکی در موردش بدین ممنون میشم :gol: )

 

الان شما میخواین کاراکتر رو به کد اسکی تو B4A تبدیل کنید و طبق کد اسکی های کامپیوتر اینکارو میخواین انجام بدید؟؟

نمیدونم ، شاید بشه شرط گذاری کرد بین 0 تا 255 ... :fekr:  ، مثلا اگه حرف A بود طبق کد اسکی کامپیوتر تبدیلش به عدد مربوطه. :fekr:

سلام روبات که نه

من رشتم الکترونیکه و تا حالا برای اینترفیس سخت افزارام از ویندوز استفاده میکردم و مشکلی هم نداشتم

بطور مثال یک بایت اطلاعات داریم که ار بیتش به یک کلید وصل شده و با زدن هر کلید اون بیت تو بایت مورد نظر یک میشه

این هشتا کلید میتونن 256 حالت داشته باشند 

این بایت رو میکرو کنترلر بصورت یک کاراکتر ارسال میکنه و تو ویندوز با دستور اسکی این کاراکتر رو به یک عدد بین 0 تا 255 ابدیل میکنیم

ولی تو اندروید نمیشه با دستور اسکی اینکار رو کرد و با پیگیریایی که کردم از سایت اصلی 

 

اینطور فهمیدم که جاوا هر کاراکتر رو 2 بایت در نظر میگیره و بیت هشتم رو علامت بایت 

و اگر مقدار داده ارسالی بیشتر از 127 باشه دستور اسکی کلا مشکل دار میشه

برای تمامی مقادیر بزرگ تر از 127 مقدار -3 رو برمیگردونه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

 

نمیخوام هر وقت من صدا زدم یکار بکنه

بطور مثال یک فانکشن داریم که وقتی از بلوتوث یه دیتا اومد خود بخود اجرا میشه ولی مشکلش اینه که باید تو یه اکتیویتی باشه تا اجرا بشه 

بردمش تو ماژول دیگه اجرا نشد

 و من توبرنامم اکتیویتیهای مختلفی دارم که از این بلوتوث استفاده میکنن 

یا باید تو همشون بنویسم یا یه چیز دیگه ای پیدا کنم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما از دستور select case استفاده کن ببین جواب میده مثلا جلوی case ها همون کارکتر رو بنویس میتونی اون کارکتر رو با زدن دکمه alt به علاوه عدد اسکی از سمت راست کیبورد بنویسی مثلا

select str

case"☺"
دستور مورد نظر
case"☻"
دستور مورد نظر
case"♥"
دستور مورد نظر
end case
لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...