有2进制16进制,为什么没有32进制? 32进制数如何实现,难点在哪里? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //视读不方便而已,SA12K,估计得看上(算上)半天才行。 大进制是有用的,可以减小容量,换句话说就是减少字节数。例如10进制的4095用16进制表示就是FFF,这样就减少了一个字节,而FFFF=65535,可以看到,如果是四个字节,10进制只能表示9999个数,而16进制可以表示65535个数字。不要小瞧这一个字节,在实际应用中非常有用的,例如实时语音数据传输,用speex窄带编码,一帧320个字节的数据编码压缩之后是38个字节,而如果这个时候加上帧头(也就是给每个不同的来源唯一编号),如果用16进制就可以节省一个字节的数据,而在这里一个字节意味着带宽至少减少0.5Kbps作用是相当巨大的,如果有32进制或者更高的进制就可以用更少的字节表示更多的数字。 itoa可以转换2~36进制。 char p[10]={0}; itoa(46655,p,36); cout<<p<<endl; UInt64的最大值16进制是 FFFF FFFF FFFF FFFF (共占16个字符),而32进制是 F VVVV VVVV VVVV (共占13个字符),其实就只能省3位,而且最高一位是F(并不是最大的V),所以第一位基本是浪费的。如果需要将长度缩短一半只能使用16*16(256)进制,但是作为一个8bit字节而言,最大能表达的也就是256个字符,而且很多是不可见的,而且真的采用到了256进制的话还不如直接传字节流更加实际,所以再高的进制是不实际的。但是无可厚非,32进制的确能压缩数值在可见字符上的量,例如作为有限长度的订单编号上附加的时间戳,如果采用毫秒来计算,以现在的年数来算,十进制表达已经是非常长的数字了,所以可以选择转换成16或者32进制来尽可能压缩其可见字符的长度来充分利用那些位数。其实当前常见的Base64编码就是一个64进制的编码,只不过Base64编码是大小写敏感的,如果用在大小写不敏感的场合的话,最多可能就只能用到36进制了。 无边透明对话框实现窗口拖拉改变大小? 16进制存储问题 为什么debug版本没有生成res文件 什么错误,请指教! 按钮是怎样知道鼠标移开了的? 如何让主窗口一直激活(标题栏不变灰),别的窗口的标题栏不变灰啊? 图像艺术特效处理算法讨论(一)------素描 hook的问题 speech sdk 中 为什么一添加 sphelper.h 头文件 就报错 socket的问题 毕业设计 不用透明图片,如何做透明的窗体?
例如10进制的4095用16进制表示就是FFF,这样就减少了一个字节,
而FFFF=65535,可以看到,如果是四个字节,10进制只能表示9999个数,而16进制可以表示65535个数字。
不要小瞧这一个字节,在实际应用中非常有用的,例如实时语音数据传输,用speex窄带编码,一帧320个字节的数据编码压缩之后是38个字节,而如果这个时候加上帧头(也就是给每个不同的来源唯一编号),如果用16进制就可以节省一个字节的数据,而在这里一个字节意味着带宽至少减少0.5Kbps
作用是相当巨大的,如果有32进制或者更高的进制就可以用更少的字节表示更多的数字。
char p[10]={0};
itoa(46655,p,36);
cout<<p<<endl;
UInt64的最大值16进制是 FFFF FFFF FFFF FFFF (共占16个字符),而32进制是 F VVVV VVVV VVVV (共占13个字符),其实就只能省3位,而且最高一位是F(并不是最大的V),所以第一位基本是浪费的。
如果需要将长度缩短一半只能使用16*16(256)进制,但是作为一个8bit字节而言,最大能表达的也就是256个字符,而且很多是不可见的,而且真的采用到了256进制的话还不如直接传字节流更加实际,所以再高的进制是不实际的。
但是无可厚非,32进制的确能压缩数值在可见字符上的量,例如作为有限长度的订单编号上附加的时间戳,如果采用毫秒来计算,以现在的年数来算,十进制表达已经是非常长的数字了,所以可以选择转换成16或者32进制来尽可能压缩其可见字符的长度来充分利用那些位数。
其实当前常见的Base64编码就是一个64进制的编码,只不过Base64编码是大小写敏感的,如果用在大小写不敏感的场合的话,最多可能就只能用到36进制了。