ورود

View Full Version : سوال: تبديل کد اسکی به عدد



noshin156
دوشنبه 08 خرداد 1391, 10:19 صبح
سلام
من يه كد اسكي دارم كه مي خوام تبديلش كنم به عدد
مثلا برنامه زير رو در نظر بگيريد:

char str[2]=(char)170

170 كد اسكي aa هستش حالا زماني كه من مي خوام اين رو به عدد دسيمالش تبديل كنم به مشكل برميخورم چون از دستور زير استفاده مي كنم:

unsigned long t
t=strtoul (c,NULL,16) ;2

چون كد اسكي 170 در مبناي 10 معادل ندارد بنابراين مقدارt برابر 0 است!حالا من مي خوام اين كد اسكي رو ابتدا تبديل كنم به مقداري كه براي مبناي 10 قابل فهم باشه سپس تبديلش كنم به عدد يعني همين 170 رو تبديل كنم به كد اسكي دو تا a بعد تبديلش كنم به مبناي 10
اميدوارم منظورم رو رسونده باشم
با تشكر

mehdi.mousavi
چهارشنبه 10 خرداد 1391, 12:17 عصر
سلام.
مطمئن نیستم درست متوجه سوالتون شده باشم، اما به چند خط کد زیر توجه کنید:

int val1 = 170; //val1 == 170
int val2 = 0xAA; //val2 == 170
int val3 = strtoul("0xAA", NULL, 16); //val3 == 170
int val4 = 0252U; //val4 == 170

اینجا، نتیجه کلیه متغیرها 170 دسیمال خواهد بود (احتمالا شما خط سه مد نظرتون بوده).

موفق باشید.

پاورقی: لطفا عناوین مناسبی برای سوالات خود انتخاب کنید. "تبدیل" هرگز یک عنوان مناسب محسوب نمیشه! در ضمن، با کمال احترام، بهتون پیشنهاد می کنم کتابی تهیه کنید تا با زیر و بم زبان C آشنا بشید. اینطوری که شما پیش میرید، در آینده ای بسیار نزدیک به مشکلات متعددی خواهید خورد.