ShirazOnline
نمایش نتایج: از شماره 1 تا 2 , از مجموع 2

موضوع: یه سوال درباره ی t-sql

  1. #1
    کاربر جدید emad.a آواتار ها
    تاریخ عضویت
    Jun 2014
    نوشته ها
    1
    تشکرها / پسندها

    پیش فرض یه سوال درباره ی t-sql

    سلام،من میخوام به Microsoft SQL server کدی بدم که عدد 10 رو بر مبنای 2 ببره،لطفا اگه کسی میتونه کدهاش رو بهم بگه.

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    RezaBehroozi admin آواتار ها
    تاریخ عضویت
    Jan 1970
    محل سکونت
    Iran/Shiraz
    نوشته ها
    11,188
    تشکرها / پسندها

    پیش فرض

    Converting between decimal & hex in T-SQL

    Sometimes however, it’s just a tad easier if we could do it directly from a T-SQL query. Converting between decimal and hexadecimal is straightforward and can be done using just built in functions:
    -- Decimal to hex
    SELECT CAST(493202384 AS varbinary)

    -- Hex to decimal
    SELECT CAST(0x1D65ABD0 AS int)

    -- Decimal to hex to decimal
    SELECT CAST(CAST(493202384 AS varbinary) AS int)
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]

    Converting binary to decimal using T-SQL

    Converting to/from binary is a bit more tricky though, as there are no built in functions for formatting a decimal number as a binary string, nor converting the latter to the first.
    The following function takes in a binary string and returns a bigint with the decimal value:
    CREATE FUNCTION [dbo].[BinaryToDecimal]
    (
    @Input varchar(255)
    )
    RETURNS bigint
    AS
    BEGIN

    DECLARE @Cnt tinyint = 1
    DECLARE @Len tinyint = LEN(@Input)
    DECLARE @Output bigint = CAST(SUBSTRING(@Input, @Len, 1) AS bigint)

    WHILE(@Cnt < @Len) BEGIN
    SET @Output = @Output + POWER(CAST(SUBSTRING(@Input, @Len - @Cnt, 1) * 2 AS bigint), @Cnt)

    SET @Cnt = @Cnt + 1
    END

    RETURN @Output

    END
    The function looks at each char in the input string (starting from behind), adding POWER(2, @Cnt) to the result if the bit is set – with special handling of the first (that is, from behind) character since POWER(2, 0) is 1 while we need it to be 0.
    Usage is straight forward:
    SELECT dbo.BinaryToDecimal('11101011001011010101111010000')
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]

    Converting decimal to binary using T-SQL

    The following function takes a bigint as input and returns a varchar with the binary representation, using the [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]algorithm:
    CREATE FUNCTION [dbo].[DecimalToBinary]
    (
    @Input bigint
    )
    RETURNS varchar(255)
    AS
    BEGIN

    DECLARE @Output varchar(255) = ''

    WHILE @Input > 0 BEGIN

    SET @Output = @Output + CAST((@Input % 2) AS varchar)
    SET @Input = @Input / 2

    END

    RETURN REVERSE(@Output)

    END
    Again usage is straight forward:
    SELECT dbo.DecimalToBinary(493202384)
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]

    Ensuring correctness

    A simple test to ensure correct conversions would be to convert from A to B and back to A again, using both of the above functions. Thus whatever we give as input should be the output as well:
    SELECT dbo.DecimalToBinary(dbo.BinaryToDecimal('11101011001011010101111010000'))
    SELECT dbo.BinaryToDecimal(dbo.DecimalToBinary(493202384))
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]

    Et voilá! Once we have the functions, they can easily be used in a normal query:
    SELECT
    object_id,
    CAST(object_id AS varbinary) AS object_id_hex,
    dbo.DecimalToBinary(object_id) AS object_id_binary
    FROM
    sys.objects
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]


    کد:
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید] [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •