#L0211. 整数变长编码
整数变长编码
题目描述
小红在学习数据压缩时发现了一种非负整数的变长编码方式,规则如下:
第 1 步:将非负整数表示为二进制。例如 ,。
第 2 步:从低位到高位每 bit 一组切分,最高一组不足 bit 时在高位补 。
- 变为
0000000一组。 - 变为
0011110(低位组)和0000111(高位组)两组。
第 3 步:从低位组开始,为每组在最高位前面加一个标志位:若该组是最后一组(最高组),标志位为 ;否则标志位为 。
于是 的编码为 00000000( 个字节), 的编码为 10011110 和 00000111( 个字节)。
更大的数也可以编码。例如 的编码(以十六进制表示)为 CE 96 C8 A6 F4 CB B6 DA 0D,共 个字节。
请编写程序,对给定非负整数输出其变长编码。
输入格式
一行一个非负整数 ()。
输出格式
一行,输出 的变长编码每个字节,以 位大写十六进制表示,字节间用空格分隔。
样例
000
9269E 07
987654321012345678CE 96 C8 A6 F4 CB B6 DA 0D
难度
普及-
通过率
—
尝试
0
已通过
0
- ID
- 939
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 128MiB
- 上传者