カレンダー

07 | 2008/08 | 09
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 - - - - - -

最近の記事

最近のコメント

最近のトラックバック

RSSフィード

月別アーカイブ

Python で16進数を負数に変換

Python の16進数で負数を表現できず悩んだメモ。

整数型には int と long があり、
大きさは、int は符号付32bits、long は無制限となっている。
値が int で表現できない程大きいもしくは小さい時は自動的に long に変換される。

正確には、
-2147483648 〜 2147483647(sys.maxint)
の範囲を超えると long になる。

で、ここで16進数。
0xffffffff を符号付32bitsで考えると10進で-1になるが、
Python 上では、4294967295L となる。
sys.maxint を超え、long に自動変換されたため。
(0x80000000 以上の値は全て long)

16進数で負数を扱いたい時は、ctypes モジュールを使うといいっぽい。
ctypes.c_int(0xffffffff).value
で、-1 が返る。


2008-05-08(Thu) 15:55| 開発| Python | トラックバック 0| コメント 0


<--/tag_list--> /div-->

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://bw28.blog5.fc2.com/tb.php/159-8d31bbdf

カテゴリー

ユーザータグ

Java Web Haskell 後ほど Gentoo .NET 携帯アプリ PCパーツ JavaScript Windows Struts ネタ C/C++ 動画 Firefox Python Eclipse ATL/WTL coLinux Cygwin Win32API うまうま OpenGL ゲーム  PHP HTML Emacs SCM Apache Maven JSP Flash SQLite XML Pentaho Xerces-C++ Sleipnir qooxdoo C# prototype.js QWT iTunes GWT-Ext djbdns gentoo 愚痴 WTP Autotools Hibernate Excel WST ツール JSTL ガンダム ジョジョ Mayaa linux CVS Samba Perl JFreeChart Wicket ShellScript Tor Xen VBA Ubuntu XHTML Mercurial Subversion COM CMS C++ Scheme F# Linux DWR Ext.js C++/CLI 

起床時間グラフ

早起き生活
Powered by 早起き生活

ブログ内検索