Mövzu üzrə bənzər suallara da baxa bilərsiniz.

python-da bitwise operator

yoldaşlar salam. pythonda bitwise operatorlarla məşq eləyirəm.
xırda bir kod yazmaq lazım oldu, yazdım.

def flipb(number, n):
    mask = (0b1<<(n-1))
    if type(number) == str:

        result = int(number,2)^mask

    else:
        result = number^mask

    print bin(result)

məğzi budu ki, binar formatda verilən (dırnaqlı yaxud dırnaqsız) ədədin sağdan n-ci bitini, əgər 0-dısa, 1-ə çevirəcək.
öz kompüterimdə yazdım, yoxladım. bir problem çıxmadı.

onlayn kompilyatorsa deyir ki, flipb(‘0b111’, 2) 0b101 nəticəsini verməlidi amma None verir.

lokalda flipb(‘0b111’, 2) də, flipb(0b111, 2) də 0b101 nəticəsini verir; yəni veb tətbiqinin mənə irad tutduğu şeyi. indi çaş-baş qalmışam.

sağdan n-ci yandırmaq (1-ə çevirmək) üçün başqa bir yol təklif eləyə bilərsiz?


Kateqoriya: Sual . , . Qısa keçid.

Verilmiş cavablar və yazılan şərhlər (2 cavab var)

(13:01, 30/12/2014 ) #51205

Sizin kodda bir balaca dəyişiklik edib, onlayn kompilyatorda yoxladım. Kodu aşağıdakı şəkildə dəyişdirdim.

import binascii
def flipb(number, n):
if type(number)==str:
x=int(number,2)
else:
x=number
return x^(1< burdan nəticəyə baxa bilərsiz.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

    (22:44, 02/01/2015 ) #51312

    çox sağ olun. mən orda naşılıq eləyib print yazmışdım. əlimiz vərdiş olub. hansı ki, return bin(result) yazsaydım, bir problem olmayacaqdı.

    amma bu binascii modulunu öyrənmək yaxşı oldu. işi xeyli asanlaşdırır.

    Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

Cavab verin


Cavab yazmaq üçün lütfən sağ sütundan və ya buradan hesaba daxil olun.

Üzvlər üçün giriş

Qeydiyyat

Elan qutusu

Software Developer - 571 xal

E. Hacı - 568 xal

Onar Alili - 526 xal

Dilsuz - 448 xal

Cabbarov Sübhan - 414 xal

Ruslan Butdayev - 328 xal

Namiq Bəndəli - 297 xal

U.Tarlan - 244 xal

Meherremoff - 234 xal

Bextiyar Azeroglu - 215 xal

Sistemə daxil olmuş 18811 sualdan 94%-dən çoxu cavablandırılmışdır.

Proyekt haqqında

E-Haci.net istehsalı. © 2010-2017