تور لحظه آخری
امروز : دوشنبه ، 17 دی 1403    احادیث و روایات:  پیامبر اکرم (ص):بار خدايا براى تو روزه گرفتيم و با روزى تو افطار مى كنيم پس آن را از ما بپذير، تشنگى...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

اجاره سند در شیراز

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

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

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

خرید بلیط هواپیما

بلیط اتوبوس پایانه

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

خرید از چین

خرید از چین

تجهیزات کافی شاپ

خرید سرور اچ پی ماهان شبکه

کاشت ابرو طبیعی و‌ سریع

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

دوره آموزش باریستا

مهاجرت به آلمان

بورس کارتریج پرینتر در تهران

تشریفات روناک

نوار اخطار زرد رنگ

ثبت شرکت فوری

خودارزیابی چیست

فروشگاه مخازن پلی اتیلن

قیمت و خرید تخت برقی پزشکی

کلینیک زخم تهران

خرید بیت کوین

خرید شب یلدا

پرچم تشریفات با کیفیت بالا و قیمت ارزان

کاشت ابرو طبیعی

پرواز از نگاه دکتر ماکان آریا پارسا

پارتیشن شیشه ای اداری

اقامت یونان

خرید غذای گربه

رزرو هتل خارجی

تولید کننده تخت زیبایی

مشاوره تخصصی تولید محتوا

سی پی کالاف

دوره باریستا فنی حرفه ای

چاکرا

استند تسلیت

تور بالی نوروز 1404

سوالات لو رفته آیین نامه اصلی

کلینیک دندانپزشکی سعادت آباد

پی ال سی زیمنس

دکتر علی پرند فوق تخصص جراحی پلاستیک

تجهیزات و دستگاه های کلینیک زیبایی

تعمیر سرووموتور

تحصیل پزشکی در چین

مجله سلامت و پزشکی

تریلی چادری

 






آمار وبسایت

 تعداد کل بازدیدها : 1851438130




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

چگونه بيت به بيت فايلي رو جستجو كنم


واضح آرشیو وب فارسی:سایت ریسک: rouhallah08-02-2007, 09:21 AMبنام خدا با سلام دوباره پس از مدتي كه از دستم راحت بودين( اونم بخاطر امتحانات ) اومدم تا با سوالاتم سرتونو درد بيارم اما اينبار سوالم در مورد بيت‌هاي رايانه‌اي هست. و اون اينكه در زبان سي آيا تابعي هست يا راهي هست كه بشود از ابتدا يا انتهاي يك فايل به تعداد مشخصي بيت مثلاً چهار بيت چهار بيت فايل رو جستجو يا اسكن نمود ميدونم يه اعمالي رو در اين زبان ميشه رو بيتها انجام داد و براي اين منظور هم عملگرهايي وجود داره اما اين كه آيا تابعي هم براي جستجوي بيت به بيت در اين زبان باشه رو نميدونم. لطفاً اگر راهي بلديد كمكم كنيد با تشكر از هم شما hamidreza_buddy08-02-2007, 09:22 PMتوی c واحد دسترسی به داده ها بایت هست و نمیشه یک فایل رو بیت به بیت خوند و اگه این کار نیازه باید اون رو بایت به بایت خوند و برای هر بایت همۀ بیت ها رو چک کرد. rouhallah09-02-2007, 02:43 PMتوی c واحد دسترسی به داده ها بایت هست و نمیشه یک فایل رو بیت به بیت خوند و اگه این کار نیازه باید اون رو بایت به بایت خوند و برای هر بایت همۀ بیت ها رو چک کرد. با سلام دوباره ببخشيد بذاريد من مشكلم رو بگم شايد راه حلي برايش داشته باشيد من ميخوام از ابتدا يا از انتهاي يك فايل (زياد فرق نميكنه) فايلي رو به صورت چهار بيت چهار بيت بخونم و براي هر آرايشي خاص از اين چهار بيت ها يك شرط تعيين كنم و اگر مثلاً فلان چهاربيت به عنوان مثال: 1001 خوانده شد يك عملي انجام شود كه چون اين چهار بيت ميباشد فكر نكنم بتوان با بررسي بايت به هدفم برسم اصلاً فرض كنيم من بيام و هشت بيت هشت بيت بخونم آيا در اين صورت مي توان آرايش هر بايت را تشخيص داد در ضمن اگر من فرض خود را عوض كنم باز هم به بيتهاي كمتر از هشت نياز دارم مثل 7 بيت 6 بيت تا 1 بيت پس اگر راهي به ذهنتان ميرسد كه بشود حتي يك بيت از يك بايت را نيز تشخيص داد كمكم كنيد متشكر م someone09-02-2007, 02:51 PMسلام. توضیحات دوست عزیزم "hamidreza_buddy" کاملا صحیح هست. شما برای اینکه بیت ها رو بتونید چک کنید میتونید از bits operator استفاده کنید. ( & یا >> یا.....) بطور صریح تابعی برای این کار وجود نداره ولی میشه به راحتی این کار رو انجام داد. کافی شما عدد یک ( 1 ) رو به اندازه ی index مورد نظرتون به سمت چپ شیفت بدید و حاصل رو با متغییر مورد نظرتون & کنید. مشخصه که اگه در index مورد نظر 1 باشه حاصل 1 و اگه 0 باشه حاصل 0 هست. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! نمونه که براتون میذارم برای چک کردن متغییر های int هست (که 32 بیتی هست.) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اگه مشکلی پیش اومد اطلاع بدید. rouhallah09-02-2007, 03:20 PMسلام. توضیحات دوست عزیزم "hamidreza_buddy" کاملا صحیح هست. شما برای اینکه بیت ها رو بتونید چک کنید میتونید از bits operator استفاده کنید. ( & یا >> یا.....) بطور صریح تابعی برای این کار وجود نداره ولی میشه به راحتی این کار رو انجام داد. کافی شما عدد یک ( 1 ) رو به اندازه ی index مورد نظرتون به سمت چپ شیفت بدید و حاصل رو با متغییر مورد نظرتون & کنید. مشخصه که اگه در index مورد نظر 1 باشه حاصل 1 و اگه 0 باشه حاصل 0 هست. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! نمونه که براتون میذارم برای چک کردن متغییر های int هست (که 32 بیتی هست.) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اگه مشکلی پیش اومد اطلاع بدید. با سلام به شما دوست عزيز جناب someone كه در رابطه با مشكلات من شما كمك‌هاي شاياني به من كرديد من اصلاً قصد ندارم خود را بيش از اون چيزي كه هستم نشون بدم اگه ميبينيد شايد سوالاتم شايد در حد يك مبتدي نباشه فقط و فقط به خاطر اينه كه من يكم منطق خوبي دارم و به مسائل رايانه‌اي نيز با همون منطقه كه فكر ميكنم كه نتيجش چنين سوالاتي هست كه ميبينيد پس خواهش مي‌كنم در جوابهايي كه به سوالاتم ميدهيد كمي سطح پايين تر صحبت كنيد مخصوصاً در مورد اصطلاحات برنامه نويسي من اگه تو جملاتتون بحث منطقي خاي از اصطلاحات پيچيده كه تا اكنون نشنيدم باشه ميتونم اون چيزي كه ميگوييد رو بفهمم حالا با اين توضيحاتي كه دادم چند تا سوال داشتم 1 منظور شما از جمله کافی شما عدد یک ( 1 ) رو به اندازه ی index مورد نظرتون به سمت چپ شیفت بدید و حاصل رو با متغییر مورد نظرتون & کنید. چيست ؟ آيا منظورتون اينه كه مثلاً من گفتم ميخواهم چهار بيت چهار بيت فايلي رو چك كنم اينه كه بايد عدد( 1 )را به اندازه چهار بيت به سمت چپ شيفت دهم؟ 2 و اونجايي كه گفتيد بايد حاصل رو با متغير مورد نظر خود & كنم چون من نمونه برنامه‌اي نديدم اگه توضيح بديد كدوم متغيري رو بايد تعيين كنم كه حاصل با اون متغير & بشه ممنون ميشوم؟ 3 و سوال آخرم اينه كه اين برنامتون در باره" چک کردن متغییر های int " دقيقاً چه كاري انجام ميده اگه به سوالاتم جواب بدهيد مخصوصاً اين آخري من رو هم كم كم وارد جمع شما برنامه نويسان حرفه‌اي مي‌كنيد و با اين كار من رو خيلي خوشحا مي‌كنيد مطمئن باشيد زحمت شما بي اثر نخواهد بود چون من تلاش خودم رو خواهم كرد و در پي تلاش حتماً پيروزي هست با تشكر والسلام someone09-02-2007, 03:47 PMسلام دوست عزیز. من کاری نکردم و خوشحال میشم اگه بتونم کمکی کرده باشم. فرض کنید که شما یک متغییر از نوع int دارید که 32 بیتی هست. اگه شما مقدار این متغییر رو برابر با 1 قرار بدید به این صورت در این 4 بایت قرار میگیره : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! یا مثلا عدد دو 2 : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! حالا اگه شما عدد 1 رو مثلا 4 بار به سمت چپ شیفت بدید دارید : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! احتمالا با ضرب منطقی آشنا هستید (&) که به این صورت عمل میکنه: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! خب حالا در نظر بگیرید که شما عددی دارید مثل 2 که به صورت بالا در حافظه ذخیره شده. برای اینکه بیت دوم رو چک کنید کافیه عدد 1 رو یکبار به سمت چپ شیفت بدید که میشه 00000010 (البته بایت اول) و با عدد 2 and کنید (& یا همون ضرب منطقی ) حاصل به این شکل در میآد : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! یعنی بیت دوم TRUE هست یا مقدارش برابر یک هست. به همین ترتیب اگه بخواید باقی بیت ها رو چک کنید کافی عدد 1 رو به اندازه مورد نظرتون شیفت بدید. (به سمت چپ ). مثلا برای چک کردن بیت اندیس 4 ام کافی هست عدد 1 رو 4 بار شیفت بدید و با عدد مورد نظرتون & کنید و حاصل این ضرب رو بررسی کنید. درضمن بیاد داشته باشید که شمارش از 0 شروع میشه. باز هم اگه مشکلی بود اطلاع بدید. rouhallah12-02-2007, 10:16 PMبا سلام راستي اين طور كه معلومه با اين توضيحات شما نميشه در يك عنصر آرايه يك بيت رو ذخيره نمود someone13-02-2007, 02:47 AMدوباره سلام. فرض میکنیم شما یک آرایه ی 2 تایی از اعداد داشته باشید. این به این معنی هست که شما دو متغییر 32 بیتی از int دارید. که مثلا بصورت زیر به اونها دسترسی دارید : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! خب مثل قبل ما به تک تک بیت های این دو عضو دسترسی داریم. برای اینکه بتونیم بیت ها رو دستکاری کنیم باز میتونیم از boolean operator استفاده کنیم. مثل And یا Or یا Xor ( & و | و ^ ). فرض کنیم عدد اول ما 1 باشه که به این صورت ذخیره شده : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! خب فرض کنید ما میخوایم بیت دوم رو یک کنیم. یکی از راهها اینه که این عدد رو با عدد 2 OR کنیم. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! نتیجه به این شکل میشه : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! که نتیجش میشه عدد 3. در نمونه ای که براتون گذاشتم به اول عدد 1 رو یک بار به سمت چپ شیفت دادم که نتیجش میشه عدد 2 و بعد با Int مورد نظرم Or کردم : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! باز اگه مشکلی بود اطلاع بدید. rouhallah13-02-2007, 01:26 PMبا سلام شايد من سوالم رو درست مطرح نكردم منظورم اين است كه اگه ما مثلاً يك كاراكتر داشته باشيم كه هشت بيت داشته باشد آيا ميتونيم اين هشت بيت رو تو يك آرايه يك بعدي قرار دهيم كه داراي 8 عنصر است. به صورتي كه در هر عنصر اين آرايه يك بيت از هر هشت بيت اون كاراكتر ذخيره بشه مثلاً كاراكتر A كه كد اسكي اون 65 ميباشد به صورت دودويي ميشود 00100001 اگه بخواهيم اين بيتهاي كاراكتر A را در آرايه‌اي ذخيره كنيم ميتونيم آرايه‌اي 8 عنصري تعريف كنيم كه هر كدام از اين بيتها تو يك عنصر اون آرايه قرار بگيره؟ اگه ميشه لطفاً راهنماييم كنيد. با تشكر prodo13-02-2007, 05:25 PMبا سلام شايد من سوالم رو درست مطرح نكردم منظورم اين است كه اگه ما مثلاً يك كاراكتر داشته باشيم كه هشت بيت داشته باشد آيا ميتونيم اين هشت بيت رو تو يك آرايه يك بعدي قرار دهيم كه داراي 8 عنصر است. به صورتي كه در هر عنصر اين آرايه يك بيت از هر هشت بيت اون كاراكتر ذخيره بشه مثلاً كاراكتر A كه كد اسكي اون 65 ميباشد به صورت دودويي ميشود 00100001 اگه بخواهيم اين بيتهاي كاراكتر A را در آرايه‌اي ذخيره كنيم ميتونيم آرايه‌اي 8 عنصري تعريف كنيم كه هر كدام از اين بيتها تو يك عنصر اون آرايه قرار بگيره؟ اگه ميشه لطفاً راهنماييم كنيد. با تشكر سلام دوست عزیز , اگر منظورت اینه که می خوای یک بایت رو در یک آرایه ذخیره کنی که هر عضو اون آرایه , یک متغیره باید همون طوری که somone گفت یه بایت یه بایت اطلاعاتتو بخونی و بیت هاشو در آری در غیر این صورت می تونی بایت خونده شده را عینا در یک متغیر ذخیره کنی و هر بیت رو که لازم داشتی با عملیات شیفت خارج کنی. البته اگر هم با اسمبلی کارکرده باشی می تونی یه برنامه بنویسی که بیت به بیت برات اطلاعات رو بگیره و بعد با یه برنامه c اونو لینک کنی. ضمنا اگه فضولی نیست. اگه داری روی یک برنامه دی اسمبل کار می کنی(احساس کردم شاید اینجوریه:cool: ) برای چک کردن دستورا می تونی از جدول استفاده کنی soheila_c++13-02-2007, 07:32 PM!!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! [این برنامه به این صورت کار میکند که در هر نوبت مقدار i طوری مشخص میشود که با هر مقایسه فقط یکی از بیت ها تنظیم میشود.چون در یک بایت . بیت با مرتبه بالاتر بیانگر مقدار128 است از این مقدار به عنوان نقطه شروع استفاده کردیم.در هر دور حلقه i نصف میشه.این کار باعث میشه تا بیت بعدی 1بشه و بقیه بیت ها 0بشن .به این صورت در هر دور حلقه یکی از بیت های ch تست میشن.اگر این بیت برابر1باشه مقایسه نتیجه ی درست بازمیگردونه و عدد 1 به خروجی فرستاده میشه.در غیر این صورت 0به خروجی فرستاده میشه......البته همینطور که someone گفتند بهتره از عملگر شیفت(در این برنامه شیفت به راست) استفاده بشه چون سرعت بیشتری نسبت به عمل ضرب و تقسیم داره.در واقع بهتره به جای i=i/2 بنویسیم i >>1 =i soheila_c++14-02-2007, 10:06 AM!!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! این برنامه به این صورت کار میکند که در هر نوبت مقدار i طوری مشخص میشود که با هر مقایسه فقط یکی از بیت ها تنظیم میشود.چون در یک بایت . بیت با مرتبه بالاتر بیانگر مقدار128 است از این مقدار به عنوان نقطه شروع استفاده کردیم.در هر دور حلقه i نصف میشه.این کار باعث میشه تا بیت بعدی 1بشه و بقیه بیت ها 0بشن .به این صورت در هر دور حلقه یکی از بیت های ch تست میشن.اگر این بیت برابر1باشه مقایسه نتیجه ی درست بازمیگردونه و عدد 1 به خروجی فرستاده میشه.در غیر این صورت 0به خروجی فرستاده میشه......البته همینطور که someone گفتند بهتره از عملگر شیفت(در این برنامه شیفت به راست) استفاده بشه چون سرعت بیشتری نسبت به عمل ضرب و تقسیم داره.در واقع بهتره به جای i=i/2 بنویسیم i >>1 =i سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 560]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن