非(qiang)常(po)乐(zi)意(ji)来一起讨论下如何十六进制转成十进制算法。
OK,开始前我不得不再次普及下基础知识。基础知识学不好,就好比一座地基不稳,材质松垮的危房。
强调几点:
十六进制数0xFF,代表:一个字节(byte) = 8bits 。写成2进制0b11111111,这里的1各自占1bit.
而十六进制中F是占4bit 。十六进制一个位范围是0x0-0xF 不就是刚刚对应0x0000~0x1111 。我们平常所说的32位数据 其实数值范围就是0x00000000(8个0)~0xFFFFFFFF(8个F) ,为什么要举32位数据,因为你肯定不陌生 int类型了解吧?一般来说就是代表32位整形数据。 最后在来一个0x12F
你可以先写成二进制0b0001 0010 1111,其实呢前面3个0省略吧,那就写成0b1 0010 1111.现在知道占几位了吧 9bit.但是貌似八进制无法满足它,装不下了,那用十六进制存吧 int16_t = short int。一般我们可以那么写 typedef short int int16_t 。
//今天只能讲思路 时间不允许
好了,小菜结束。还是来个简单的开始。给定一个十六进制数 小于32bits 例如0x123456F 转成十进制。
转换公式应该是1 *16^6 +2*16^5+3*16^4+...+6*16^1+F*16^0 很简单吧....... 人工算是这样没错,因为一目了然啊,但是我们需要的是一个程序,它的要求是