加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Go语言进制与转换

发布时间:2020-12-16 09:37:09 所属栏目:大数据 来源:网络整理
导读:常见进制有以下几种: 二进制:只有 0 和 1,Go语言中不能直接使用二进制表示整数; 八进制:0-7,以数字 0 开头; 十进制:0-9; 十六进制:0-9 以及 A-F,以 0X 开头,A-F 以及 X 不区分大小写。 任意进制转换为十进制 二进制转十进制:从最低位开始,每个
常见进制有以下几种:
  • 二进制:只有 0 和 1,Go语言中不能直接使用二进制表示整数;
  • 八进制:0-7,以数字 0 开头;
  • 十进制:0-9;
  • 十六进制:0-9 以及 A-F,以 0X 开头,A-F 以及 X 不区分大小写。

任意进制转换为十进制

二进制转十进制:从最低位开始,每个位上数乘以 2 的位数减 1 次方然后求和。

1011 = 1*20?+ 1*21?+ 0*22?+ 1*23?= 11

八进制转十进制:从最低位开始,每个位上数乘以 8 的位数减 1 次方然后求和。

0123 = 3*80?+ 2*81?+ 1*82?+ 0*83?= 83

其他进制转十进制同理。

十进制转其他进制

十进制转二进制:不断除以 2,直到 0 为止,余数倒过来即可,如下图所示:


十进制转八进制:不断除以 8,直到 0 为止,余数倒过来即可。

十进制转十六进制:同上。

其他进制互转:
  • 二进制转换八进制:将二进制数从低位开始,每三位一组,转换成八进制数即可;
  • 二进制转十六进制:将二进制数从低位开始,每四位一组,转换成十六进制数即可;
  • 八进制转换二进制:将八进制数每 1 位转换成一个 3 位的二进制数(首位 0 除外);
  • 十六进制转二进制:将十六进制每 1 位转换成对应的一个 4 位的二进制数即可。

反码补码

对于有符号数而言,二进制的最高为是符号位:0 表示正数,1 表示负数。

比如 1 在二进制中:

1? 使用二进制表示为:0000? 0001
-1 使用二进制表示为:1000? 0001

正数的原码、反码、补码都一样,负数的反码 = 原码符号位不变,其他位取反,补码是反码 +1

? ? ? ? ? ? ? ? ? 1? ? ? ? ? ? ? ? ? ? ? -1
原码? 0000? 0001??????? 1000? 0001
反码? 0000? 0001??????? 1111? 1110
补码? 0000? 0001??????? 1111? 1111

常见理解:
  • 0 的反码补码都是 0
  • 计算机是以补码形式运算的

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读