اطلاعیه

Collapse
No announcement yet.

یه سوال کوچیک : تابع تبدیل مبنا 10 به مبنا 2 در VB

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    یه سوال کوچیک : تابع تبدیل مبنا 10 به مبنا 2 در VB

    سلام.
    خوبید؟
    من تابع تبدیل مبنا 10 به 2 رو لازم دارم.
    2- شرطی بنویسم که اگر اطلاعات ورودی غیر از عدد بود، دستور تبدیل مبنا 10 به 2 رو انجام نده و مثلا Text1.Text="" قرار بده.
    همچنین اگه در ادامه بتونید برام بگید چطور می تونیم بنویسیم که عدد ابتدا و انتها رو از ما بخواد و از عدد اول تا عدد آخر رو به صورت باینری بنویسه. اولین در خواستم خیلی ضرور تره. ممنون
    کنکوری 90 ديروز،آ‌دانشجو مهندسي نرم افزار پلي تكنيك امروز!

    #2
    پاسخ : یه سوال کوچیک : تابع تبدیل مبنا 10 به مبنا 2 در VB

    سوال به این راحتی نمی تونستم پیدا کنم. لطفا کمک کنید.
    کنکوری 90 ديروز،آ‌دانشجو مهندسي نرم افزار پلي تكنيك امروز!

    دیدگاه


      #3
      پاسخ : یه سوال کوچیک : تابع تبدیل مبنا 10 به مبنا 2 در VB

      سلام
      اگه VB8 کار می کنی


      کد:
      Dim i, lo As Double
          lo = TextBox1.Text
          i = Math.Log(lo, 2)
          MsgBox(i)

      تو VB6 هم باید مثل همین باشه.
      سوال دومت که ساده ترین راهش اینه:
      یه دونه Try/catch یا یه On erorr resume next تعریف کنی، اگه کاربر عدد نزنه خود به خود خطا می ده. فقط حواست باشه ورودی باید عدد بزرگتر از صفر باشه نه هر عددی.
      برای کاری در حوزه اربعین نیاز به نیروی داوطلب هستیم.
      http://hosseinwalkingday.com

      دیدگاه


        #4
        پاسخ : یه سوال کوچیک : تابع تبدیل مبنا 10 به مبنا 2 در VB

        من با وی بی 6 کار می کنم. و کدی که داده بودین، کار نکرد :cry2:
        جواب دومی شما رو متوجه نشدم . می شه با مثال بفرمائید. ممنون
        کنکوری 90 ديروز،آ‌دانشجو مهندسي نرم افزار پلي تكنيك امروز!

        دیدگاه


          #5
          پاسخ : یه سوال کوچیک : تابع تبدیل مبنا 10 به مبنا 2 در VB

          خب. سوال اولم هنوز سر جای خودش هست : تابع تبدیل عدد در مبنای 10 به همان عدد در مبنای 2
          سوال دومم خودم تونستم حلش کنم البته نه به روش اصولی. به این صورت نوشتم که
          if val(text1.text) >0 then
          ...
          else
          msgbox " لطفا عدد بزرگتر از صفر وارد کنید "
          end if
          به نظرم همین که کار می کنه خوبه. ولی هنوز اون تابع رو لازم دارم.
          کنکوری 90 ديروز،آ‌دانشجو مهندسي نرم افزار پلي تكنيك امروز!

          دیدگاه


            #6
            پاسخ : یه سوال کوچیک : تابع تبدیل مبنا 10 به مبنا 2 در VB

            خوب بلاخره جوابش رو از دوستان گرفتم. از دوستان مجید آنلاینی . آدرس پاسخ : http://forum.majidonline.com/showpost.php?p=884612&postcount=2
            اینم تابعش که دوستمون تو سایت مجید آنلاین قرار دادن :
            کد:
            Private Function NumberToText(ByVal Number As Currency, ByVal Base As Long) As String
              Dim Value As Long, NewNumber As Currency
              Dim Pos As Long, BasePos As Long
              Dim InsertZero As Boolean
              If Number < 0 Then
                NumberToText = "-"
                Number = 2147483648@ + Number
                If Number = 0 Then Number = 2147483648@
              End If
              BasePos = Log(4294967296@) / Log(Base)
              For Pos = BasePos To 0 Step -1
                NewNumber = CCur(Base) ^ CCur(Pos)
                Value = 0
                Do While Number >= NewNumber
                  Value = Value + 1
                  Number = Number - NewNumber
                Loop
                If Value > 0 Or Pos = 0 Then InsertZero = True
                If InsertZero Then
                  NumberToText = NumberToText & Mid("0123456789ABCDEF", Value + 1, 1)
                End If
              Next
            End Function
            ین تابع دو پارامتر دریافت می کنه، پارامتر اول عدد مورد نظر در مبنای 10 است و عدد دوم مبنایی است که می خواهید
            به آن تبدیل شود، مثلا اگر می خواهید به مبنای 2 تبدیل شود، عدد 2 را در آن قرار دهید.

            در مثال زیر معادل مبنای 2 عدد 1234 در Text1 قرار می گیرد :
            کد:
              Text1.Text = NumberToText(1234, 2)
            کنکوری 90 ديروز،آ‌دانشجو مهندسي نرم افزار پلي تكنيك امروز!

            دیدگاه


              #7
              پاسخ : یه سوال کوچیک : تابع تبدیل مبنا 10 به مبنا 2 در VB

              تابع فوق برای visual basic 2008 با دو تغییر می توان به دست اورد:
              کد:
              Private Function NumberToText(ByVal Number As Currency, ByVal Base As Long) As String
                Dim Value As Long, NewNumber As decimal
                Dim Pos As Long, BasePos As Long
                Dim InsertZero As Boolean
                If Number < 0 Then
                  NumberToText = "-"
                  Number = 2147483648@ + Number
                  If Number = 0 Then Number = 2147483648@
                End If
                BasePos = Math.Log(4294967296@) / Math.Log(Base)
                For Pos = BasePos To 0 Step -1
                  NewNumber = Cdec(Base) ^ Cdec(Pos)
                  Value = 0
                  Do While Number >= NewNumber
                    Value = Value + 1
                    Number = Number - NewNumber
                  Loop
                  If Value > 0 Or Pos = 0 Then InsertZero = True
                  If InsertZero Then
                    NumberToText = NumberToText & Mid("0123456789ABCDEF", Value + 1, 1)
                  End If
                Next
              End Function
              کنکوری 90 ديروز،آ‌دانشجو مهندسي نرم افزار پلي تكنيك امروز!

              دیدگاه

              لطفا صبر کنید...
              X