Latest posts on Переобразование 16-ричной, 10-ной, 8-ной в двоичную систему счисления topichttps://python.su/forum/topic/606/2007-03-28T01:16:21+03:00Общий :: Python для экспертов :: Переобразование 16-ричной, 10-ной, 8-ной в двоичную систему счисления
2007-03-28T01:16:21+03:00masai4248<br/>Oct2Bin = {“0”:“000”,<br/> “1”:“001”,<br/> “2”:“010”,<br/> “3”:“011”,<br/> “4”:“100”,<br/> “5”:“101”,<br/> “6”:“110”,<br/> “7”:“111”}<br/><br/>OctNumber = “172”<br/><br/>print “”.join(map(lambda x:Oct2Bin, list(OctNumber)))<br/><br/>Выводит на экран 001111010.<br/><br/>Аналогично для 16-тиричной системы. :)
Общий :: Python для экспертов :: Переобразование 16-ричной, 10-ной, 8-ной в двоичную систему счисления
2007-03-27T13:55:56+03:00balu4245<blockquote><em>balu</em><br/>Вопрос решился написанием собственных функций. Вот они:</blockquote>Функцию DigitToBin, естественно, можно написать проще, но тогда не будет работать OctToBin, может кому пригодиться…<br/>def bin(i, numdigits=8):<br/> “”“Convert integer to binary string.”“”<br/> s = '';q = i<br/> digits = <br/> while (1):<br/> q, r = divmod(q, 2)<br/> s = `r` + s<br/> if q == 0: break<br/> return s<br/><br/>>>>print bin(11)<br/>1011<br/>
Общий :: Python для экспертов :: Переобразование 16-ричной, 10-ной, 8-ной в двоичную систему счисления
2007-03-27T13:38:35+03:00balu4244<blockquote><em>ofigetitelno</em><br/>В десятичную, конструктором инта:</blockquote>Да, с этим разобрался самостоятельно. Вопрос решился написанием собственных функций. Вот они:<br/>def DigitToBin(value, numdigits=8, base=2):<br/> “”“Convert integer to binary string.”“”<br/> val = value<br/> digits = <br/> for i in range(numdigits):<br/> val, digits<em> = divmod(val, base)<br/> s = ‘'<br/> for digit in digits:<br/> s = `digit`+s<br/> return s<br/><br/>def OctToBin(value):<br/> “”“Convert octal value to binary string.”“”<br/> value = `value`<br/> result = ’'<br/> for digit in value:<br/> result = result + DigitToBin(int(digit), 3)<br/> return result<br/> <br/><br/>>>> print OctToBin(11)<br/>001001<br/>>>> print DigitToBin(11)<br/>00001011<br/><br/><br/>Всем спасибо.</em>
Общий :: Python для экспертов :: Переобразование 16-ричной, 10-ной, 8-ной в двоичную систему счисления
2007-03-27T13:32:19+03:00balu4243<blockquote><em>Striver</em><br/>Гы! Вопрос то про ДВОИЧНУЮ систему был, про oct и hex и так известно (интересно нафига кому-нибудь может понадобиться восьмеричная система?).</blockquote>Раздаю права ;)
Общий :: Python для экспертов :: Переобразование 16-ричной, 10-ной, 8-ной в двоичную систему счисления
2007-03-27T12:38:41+03:00ofigetitelno4242В кукбуке питоновском есть примерчик:<br/><div class="code"><pre>import string<br/>def format(number, radix, digits=string.digits+string.ascii_lowercase):<br/> """ format the given integer `number' in the given `radix' using the given<br/> `digits' (default: digits and lowercase ascii letters) """<br/> if not 2 <= radix <= len(digits):<br/> raise ValueError, "radix must be in 2..%r, not %r" % (len(digits), radix)<br/> # build result as a list of "digit"s in natural order (least-significant digit<br/> # leftmost), at the end flip it around and join it up into a single string<br/> result = [ ]<br/> addon = result.append # extract bound-method once<br/> # compute 'sign' (empty for number>=0) and ensure number >= 0 thereafter<br/> sign = ''<br/> if number < 0:<br/> number = -number<br/> sign = '-'<br/> elif number == 0:<br/> sign = '0'<br/> _divmod = divmod # access to locals is faster<br/> while number:<br/> # like: rdigit = number % radix; number //= radix<br/> number, rdigit = _divmod(number, radix)<br/> # append appropriate string for the digit we just found<br/> addon(digits[rdigit])<br/> # append sign (if any), flip things around, and join up into a string<br/> addon(sign)<br/> result.reverse( )<br/> return ''.join(result)</pre></div>В десятичную, конструктором инта:<br/>int('FF', 16)<br/>print format(int('AB', 16), 2)<br/>:)<br/>Можно ещё и здесь посмотреть:<br/><a href="http://pleac.sourceforge.net/pleac_python/numbers.html">http://pleac.sourceforge.net/pleac_python/numbers.html</a>
Общий :: Python для экспертов :: Переобразование 16-ричной, 10-ной, 8-ной в двоичную систему счисления
2007-03-27T12:17:20+03:00Striver4241Гы! Вопрос то про ДВОИЧНУЮ систему был, про oct и hex и так известно (интересно нафига кому-нибудь может понадобиться восьмеричная система?).<br/>Запрос в Google “binary numbers python” приводит к <a href="http://code.google.com/p/gmpy/">http://code.google.com/p/gmpy/</a>
Общий :: Python для экспертов :: Переобразование 16-ричной, 10-ной, 8-ной в двоичную систему счисления
2007-03-27T11:23:37+03:00j2a4239<div class="code"><pre>>>> i = 25<br/>>>> oct(i)<br/>'031'<br/>>>> hex(i)<br/>'0x19'</pre></div>
Общий :: Python для экспертов :: Переобразование 16-ричной, 10-ной, 8-ной в двоичную систему счисления
2007-03-27T11:16:57+03:00Viper4236Можно так:<br/><br/>print “%o”%25<br/>print “%x”%25<br/>
Общий :: Python для экспертов :: Переобразование 16-ричной, 10-ной, 8-ной в двоичную систему счисления
2007-03-27T11:06:03+03:00balu4235Есть ли в Python стандартная возможность осуществить сабж или надо писать самому?