整数,小数如何转为ASC码
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
十进制小数转二进制
如:0.625=(0.101)B
0.625*2=1.25======取出整数部分1
0.25*2=0.5========取出整数部分0
0.5*2=1==========取出整数部分1
再如:0.7=(0.1 0110 0110...)B
0.7*2=1.4========取出整数部分1
0.4*2=0.8========取出整数部分0
0.8*2=1.6========取出整数部分1
0.6*2=1.2========取出整数部分1
0.2*2=0.4========取出整数部分0
0.4*2=0.8========取出整数部分0
0.8*2=1.6========取出整数部分1
0.6*2=1.2========取出整数部分1
0.2*2=0.4========取出整数部分0
1个字节它不管怎么样还是只能表示256个数,因为有符号所以我们就把它表示成范围:-128-127。它在计算机中是怎么储存的呢?
可以这样理解,用最高位表示符号位,如果是0表示正数,如果是1表示负数,
剩下的7位用来储存数的绝对值的话,能表示27个数的绝对值,再考虑正负两种情况,
27*2还是256个数。首先定义0在计算机中储存为00000000,对于正数我们依然可以像无符号数那样换算,
从00000001到01111111依次表示1到127。那么这些数对应的二进制码就是这些数的原码。
到这里很多人就会想,那负数是不是从10000001到11111111依次表示-1到-127,那你发现没有,
如果这样的话那么一共就只有255个数了,因为10000000的情况没有考虑在内。
实际上,10000000在计算机中表示最小的负整数,就是这里的-128,而且实际上并
不是从10000001到11111111依次表示-1到-127,而是刚好相反的,从10000001到11111111依次
表示-127到-1。负整数在计算机中是以补码形式储存的,补码是怎么样表示的呢,
这里还要引入另一个概念——反码,所谓反码就是把负数的原码(负数的原码和和它的绝对值所对应的
原码相同,简单的说就是绝对值相同的数原码相同)各个位按位取反,是1就换成0,是0就换成1,
如-1的原码是00000001,和1的原码相同,那么-1的反码就是11111110,而补码就是在反码的基础上加1
,即-1的补码是11111110+1=11111111,因此我们可以算出-1在计算机中是按11111111储存的。
总结一下,计算机储存有符号的整数时,是用该整数的补码进行储存的,0的原码、补码都是0,
正数的原码、补码可以特殊理解为相同,负数的补码是它的反码加1。
下面再多举几个例子,来帮助大家理解!
十进制 → 二进制 (怎么算?要是不知道看计算机基础的书去)
47 → 101111
有符号的整数 原码 反码 补码
47 00101111 00101111 00101111(正数补码和原码、反码相同,不能从字面理解)
-47 10101111 11010000 11010001(负数补码是在反码上加1)
现在知道了吧?
6的原码是00000110
6的反码是11111001
反码+1以后表示负数
11111010
这就是-6
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 | |
【分享评测,赢取加热台】使用8051单片机驱动WS2812被打赏40分 |