zoukankan      html  css  js  c++  java
  • 二进制

    今天在涉及到String型转换为Int型时候想到的一个问题,带符号数的转换问题,发现需要再回头看看进制的问题。找到点资料,觉得还可以,借取一段放在这里与备后查。

          16进制:用16作为基数的计数系统。用数字0-9和字母a-f(或其大写A-F)表示10到15。   十六进制数转换成十进制数   2进制,用两个阿拉伯数字:0、1;   8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;   10进制,用十个阿拉伯数字:0到9;   16进制,用十六个阿拉伯数字……等等,阿拉伯人或说是印度人,只发明了10个数字啊?   16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。   十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……   所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。   ...........................................................   N进制的数可以用0---(N-1)的数表示超过9的用字母A-F   例如:   10进制的32表示成16进制就是:20   16进制的32表示成10进制就是:3×16^1+2×16^0=50   6.1 为什么需要八进制和十六进制?   编程中,我们常用的还是10进制……毕竟C/C++是高级语言。   比如:   int a = 100,b = 99;   不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。   但,二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是:   0000 0000 0000 0000 0110 0100   面对这么长的数进行思考或操作,没有人会喜欢。因此,C,C++ 没有提供在代码直接写二进制数的方法。   用16进制或8进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。不过,为什么偏偏是16或8进制,而不其它的,诸如9或20进制呢?   2、8、16,分别是2的1次方,3次方,4次方。这一点使得三种进制之间可以非常直接地互相转换。8进制或16进制缩短了二进制数,但保持了二进制数的表达特点。在下面的关于进制转换的课程中,你可以发现这一点。

  • 相关阅读:
    flask全栈开发3 模板
    flask全栈开发2 URL与视图
    flask全栈开发1 课程简介
    微信公众号开发中遇到的问题总结
    python web学习路线
    内存数据库Memcached和redis基本使用
    2019年8月12号成长题目
    2019年8月10号成长题目
    2019年8月7号成长题目
    SpringCloud简介与5大常用组件
  • 原文地址:https://www.cnblogs.com/superws/p/5495356.html
Copyright © 2011-2022 走看看