十进制和二进制

十进制 二进制

1 1
2 10
3 11
4 100
7 111
8 1000
15 1111
16 10000
31 11111
32 100000
63 111111
64 1000000
127 1111111
128 10000000
255 11111111
256 100000000
511 111111111
512 1000000000
1023 1111111111
1024 10000000000
2047 11111111111
2048 100000000000
4095 111111111111
4096 1000000000000
8191 1111111111111
8192 10000000000000
16383 11111111111111
16384 100000000000000
32767 111111111111111
32768 1000000000000000
65535 1111111111111111
65536 10000000000000000
131071 11111111111111111
131072 100000000000000000
262143 111111111111111111
262144 1000000000000000000
524287 1111111111111111111
524288 10000000000000000000
1048575 11111111111111111111
1048576 100000000000000000000

视频教程

网易公开课

http://open.163.com/movie/2011/3/1/U/M8O9BOGDE_M8OEF471U.html

理解

十进制
2  5  5
百 十 个 (位)
百位: 10 * 10 * 2 = 200
十位: 10 * 5 = 50
个位: 1 * 5 = 5

二进制
只能有 0 and 1来表示
十进制(255) 转换为 二进制
1   1  1  1  1  1  1  1
128 64 32 16 8  4  2  1 (位)
128 = 128 * 1
64 = 64 * 1
...
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255

十进制(250) 转换为 二进制 1 1 1 1 1 0 1 0
250 - 128 = 122 - 64 = 58 -32 = 26 -16 = 10 - 8 = 2 - 4 = -2
                                                  2 - 2 = 0
                                                  0 - 1 = -1
可减 写1 不可减 写0

python 进制转换

1、num必须是带双引号的,可表示对应数值的字符

int(num,2)=========>将2进制转换成10进制【不能出现0、1以外的字符】
int(num,8)=========>将8进制转换成10进制【不能出现0-7以外的字符】
int(num,16)=========>将16进制转换成10进制【不能出现0-9和a-f以外的字符】

2、num是10进制的字数

bin(num)=========>将10进制转换成2进制【不能出现0-9以外的字符】
oct(num)=========>将10进制转换成8进制【不能出现0-9以外的字符】
hex(num)=========>将10进制转换成16进制【不能出现0-9以外的字符】

function 自定义转换函数

#NumOctHex.py
#自己写一个模块NumOctHex.py,包含8、10、16转换成2进制
'''
str_num的类型必需是可被str转换的整数,如:‘111’、‘123’
16进制中str_num可以是‘123456789abcdef’,且必须是0-9及a-f之间
8进制中str_num可以是‘1234567’,且必须是0-7之间的数
'''
'''
系统自带的转换方法都是通过10进制进行转换的,下面的三个函数是通过将8、10、16转换成2进制
'''
#十六进制to二进制
def hex2bin(str_num):
    num = int(str_num,16)       #如果是10进制转换二进制,只需要将此处的16删除,或改或10?
    while True:?
        if num == 0: break?
        bit.append(str(rem))??
    return ''.join(bit[::-1])
#十进制to二进制
def dec2bin(str_num):
    num = int(str_num,8)
    bit = []
    while True:
        if num == 0: break
        num,rem = divmod(num,2)
        bit.append(str(rem))
    return ''.join(bit[::-1])
#八进制to二进制
def oct2bin(str_num):
    num = int(str_num,8)
    bit = []
    while True:
        if num == 0: break
        num,rem = divmod(num,2)
        bit.append(str(rem))
    return ''.join(bit[::-1])

运行结果

'''
下面两句是一样的
str(obj,encoding=‘utf-8’,errors=‘strict’)
''.encode(encoding=‘utf-8’,errors=‘strict’)
'''
#使用ord的二进制值,即2个字节的unicode
In[70]: ord('中')
Out[70]: 20013

In[73]: dec2bin(str(ord('中')))
Out[73]: '100111000101101'

#使用utf-8的二进制值,即可变长的unicode
In[75]: dec2bin(str('中'.encode('utf-8').hex()))
Out[75]: '111001001011100010101101'

#以上函数有重复造轮子的嫌疑
In[15]: '中'.encode()    #先转换成16进制的bytes
Out[15]: b'\xe4\xb8\xad'
In[16]: '中'.encode().hex()  #然后去除16进制的标识'b'和'\x'
Out[16]: 'e4b8ad'
In[17]: int('中'.encode().hex(),16)  #16进制转换成10进制
Out[17]: 14989485
In[18]: bin(int('中'.encode().hex(),16)) #10进制转换成2进制
Out[18]: '0b111001001011100010101101'
#以上是中文字符转换成2进制的方法
##################################################
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容

  • 二进制表示一般用原码表示,计算加减时用补码表示。这里的二进制小数是用的定点数表示,不是用浮点数表示的。 0X01 ...
    codingriver阅读 2,153评论 0 0
  • (一)、进制之间的转换 八进制:0-7 十六进制:0-F 1、十进制 与 二进制之间的转换 (1)、十进制转换为二...
    MPPC阅读 21,233评论 2 49
  • 企业团队可根据人数及规模大小来确定组织模式。创业初期,要用信任将每个人都融合在一起,主要是心与心的碰撞,要用羽毛球...
    伊森田慧慧阅读 337评论 0 1
  • 1 陈永远也忘不了那场演唱会和伍的那场离别。去体育馆的时候,陈买了五月天的票,那是第二人生的发表会,从中午一直等到...
    了下阅读 245评论 0 0
  • 是啊,都已经三年了,十七八岁的年纪,卉都在喜欢那样一个人,她同样也喜欢一个歌手,因为两个人在她心里很像,所以她分不...
    姜姜说阅读 128评论 0 0