10进制整数到2进制的转换,01代码分析

作者: 会写bug的鸟 | 来源:发表于2018-05-28 23:50 被阅读21次

正整数十进制转二进制

十进制数字5转二进制是00000101,十进制数字5除以2,取模,商如果大于2继续除以2取模,直到商小于2,最后把余数按倒序串联起来就是该十进制正整数的二进制, 计算机内部表示数的字节单位是定长的,如8位,16位,或32位。所以,位数不够时,高位补零

42-》010101-》00101010

正整数二进制转十进制

先用0进行二进制数字的补位,从二进制数字非零首位开始,乘2加二进制数字下一位继续乘2,直到加乘到二进制数字末位,最后的一次加,所得到的值就是该二进制正整数的十进制,注意首位如果是0就代表是正整数,如果首位是1则代表是负整数(可以忽略补位,需要先取反再换算)。

在这里说一下mysql的tinyint最大范围-127到+128的由来,+128的二进制数字是10000000,计算机底层的存储机制是字节,也就是最小存储单位,一个字节对应8bit,bit是什么呢,在我理解就是01代码的长度,每一个01都是1bit,也就是一个长度,那好8比特对应的刚好是数字10000000的长度,也就是一个字节对应10000000的十进制数字+128的长度,也就是说mysql的tinyint计算机限制的是1字节,至此结束

负整数十进制转2进制

十进制数字-5转二进制是00000101,十进制数字-5转正整数,转二进制,取反,+1,注意是二进制+1

负整数-5-》5-》00000101-》11111010-》11111011

负整数-42-》42-》00101010-》1010101-》11010110

-127=》127-》01111111-》10000000-》10000001

-128-》128-》10000000-》01111111-》10000000结果会和+128重合,简单来说就是如果超过-127计算机就没法区分正负了

原文链接https://jingyan.baidu.com/article/597a0643614568312b5243c0.html

+129一定会和-127重合的

附上ASCII表,是不是好像明白了什么,没错啊,A是可以和整数求值的,也是定义char a='A',只占一个字节的根本原因

再继续深入一下,UTF-8汉字转ASCII, \u4e00-\u9fa5可以继续转二进制,从而得知每一个汉字所占的字节长度,再去计算mysql的存储类型

ASCII

相关文章

  • 10进制整数到2进制的转换,01代码分析

    正整数十进制转二进制 十进制数字5转二进制是00000101,十进制数字5除以2,取模,商如果大于2继续除以2取模...

  • 算法(十进制与K进制的转换)

    十进制整数到K进制整数 除K取余法。 十进制小数到K进制小数 乘K取整法。

  • 进制转换

    进制转换掌握好规律即可:10进制转换成x进制即先逐位取余(注意考虑10进制以上进制的情况)再取整,最后记得要反序输...

  • x86基础实验-进制转换(跳转表实现)

    简介 使用跳转表实现10进制->16进制、16进制->10进制、2进制->10进制转换,及10进制乘除法。 程序运...

  • js的进制转换

    js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()...

  • Flutter 进制转换

    10进制转换位16进制 16进制转换位10进制

  • js颜色进制之间的转换

    十进制、十六进制、RGBA颜色值之间的相互转换 10进制转rgba rgb转16进制 16进制转10进制 完整代码...

  • java——进制

    进制转换 10进制十进制(逢10进1)是我们最常用的一种数位进制方式。 10进制和2进制可以相互转换,举例如下: ...

  • 进制转换

    2进制 , 8进制 , 10进制 , 16进制 , 介绍 及 相互转换 及 快速转换的方法 为什么要使用进制数 数...

  • 基础知识

    二进制的转换 10进制转化成2进制 1.一般我们用到的数1.2...100,都是10进制的数,如何转换成2进制呢用...

网友评论

    本文标题:10进制整数到2进制的转换,01代码分析

    本文链接:https://www.haomeiwen.com/subject/qrgnjftx.html