汽车网站建设分析报告,直播软件app,手机百度账号登录入口,ps 做ui比较好的网站有哪些专栏导航
本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏#xff0c;故划分为两个专栏导航。读者可以自行选择前往哪个专栏。
#xff08;一#xff09;WIn32 专栏导航
上一篇#xff1a;计算机基础#xff1a;编码02#xff0c;有符号数编码#xf…专栏导航
本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏故划分为两个专栏导航。读者可以自行选择前往哪个专栏。
一WIn32 专栏导航
上一篇计算机基础编码02有符号数编码原码
回到目录
下一篇无
二MFC 专栏导航
上一篇计算机基础编码02有符号数编码原码
回到目录
下一篇无
本节前言
上一节我讲解了原码的一点知识。本节我继续来讲解关于原码的知识。
在上一节我讲了根据一个原码来判断它所表示的十进制整数。本节我们反过来给定一个十进制整数来求解其原码。
一. 根据十进制数求原码
在下面的讲解中会涉及将十进制数转为对应的二进制数的知识。将十进制整数转为二进制数需要采用除 2 取余法。如果你不会这个方法请参考下面的链接所示的文章。
计算机基础二进制基础04十进整制数转化为二进制整数
在确保你已经学会了除 2 取余法之后你可以接着往下学习本节的知识。
在上一节里面我们讲了原码的结构。一个原码它分为两个字段。无论这个原码是 8 位的还是 16 位的32 位的还是 64 位的它都是分为两个字段。最高位是一个字段它是符号位。而其余位是另一个字段数值位。
给定一个十进制整数首先呢看它是 0正数还是负数。如果是 0 的话它的原码就是全 0 。如果是正整数的话则符号位为 0数值位为这个十进制正整数对应的二进制数。如果是负整数的话则符号位为 1而数值位是这个十进制负整数的绝对值所对应的二进制数。
举例来说如果我们给定 49 这个 十进制正整数那么由于是正整数所以符号位为 0 。而数值位则是十进制整数 49 所对应的二进制数 11 0001 。假定这个数是 8 位整数则它的原码就是 0011 0001 。如果这个数是 16 位整数则它的原码是 0000 0000 0011 0001 。注意填完了符号位与最简数值位之后剩余位补 0 。
再来举一个例子假定我们要来表示的整数是 -93 。这是一个负整数所以符号位为 1 。然后呢这个负整数的绝对值为 93所以数值位为十进制整数 93 所对应的二进制数 101 1101 。假定这个数是 8 位整数则它的原码为 1101 1101 。假定这个数是 16 位整数则它的原码是 1000 0000 0101 1101 。注意填完了符号位与最简数值位之后剩余位补 0 。
二. 例题
在这里我只举一个例子。求解 ±103 的原码。
无论是 103还是 -103它的绝对值都是 103 。我们先求解 103所对应的二进制数结果为 110 0111 。这个结果我们将其作为数值位。
如果是 8 位二进制数则 103 的原码是 0110 0111-103 的原码是 1110 0111 。
如果是 16 位二进制数则 103 的原码是 0000 0000 0110 0111-103 的原码是 1000 0000 0110 0111 。
三. 特殊的原码
对于 0 这个数它的 8 位原码为 0000 0000它的 16 位原码为 0000 0000 0000 0000 。
但是现在有个问题1000 0000它代表着什么数呢符号位为 1而数值位为 0它所代表的数是 -0 吗
不是的。
某一个原码当符号位为 1而数值位是全 0 时这个原码所代表的数值要看符号的位权是什么。
在某一个原码里面我们设符号位的位权为 a某一个数它正好是说符号位为 1数值位是全 0则这个原码所代表的十进制数为 。
对于 8 位二进制数符号位的位权为 7所以a 等于 7则 1000 0000 所代表的十进制数为 为 -128 。
对于 16 位二进制数符号位的位权为 15所以a 等于 15则 1000 0000 0000 0000 所代表的十进制数为 为 -32768 。
四. 有符号数的范围
在学习 C/C 的时候我们大概都学习过8 位有符号整数的范围是 -128 ~ 127而 16 位有符号整数的范围是 -32768 ~ 32767 。
也就是说signed char 型变量的范围是 -128 ~ 127而 short 型变量的范围是 -32768 ~ 32767 。
那么为什么是这个范围呢
我们先来说 8 位原码。
一8 位原码的表示范围
首先呢当 8 位全 0 时此原码表示的数是 0 。
然后呢当 符号位是 0且数值位并非全 0 时则此原码代表正整数。此时这个正整数的数值位的取值范围是 000 0001 ~ 111 1111也就是 1 ~ 127 。
当符号位为 1 时且数值位并非全 0 时则此原码代表负整数。此时这个负整数的数值位的取值范围是 000 0001 ~ 111 1111也就是说这个负整数的绝对值为 1 ~ 127 。所以在这种情况里此原码的取值范围是 -127 ~ -1 。
当符号位 为 1且数值位是全 0 时此时这个负整数所表示的数为 -128 。
我们将以上几种情况清点以下-128-127 ~ -101 ~ 127把它们组合起来就是 -128 ~ 127 。
二16 位原码的表示范围
首先呢当 16 位全 0 时此原码表示的数是 0 。
然后呢当 符号位是 0且数值位并非全 0 时则此原码代表正整数。此时这个正整数的数值位的取值范围是 000 0000 0000 0001 ~ 111 1111 1111 1111也就是 1 ~ 32767 。
当符号位为 1 时且数值位并非全 0 时则此原码代表负整数。此时这个负整数的数值位的取值范围是 000 0000 0000 0001 ~ 111 1111 1111 1111也就是说这个负整数的绝对值为 1 ~ 32767 。所以在这种情况里此原码的取值范围是 -32767 ~ -1 。
当符号位 为 1且数值位是全 0 时此时这个负整数所表示的数为 -32768 。
我们将以上几种情况清点以下-32768-32767 ~ -101 ~ 32767把它们组合起来就是 -32768 ~ 32767 。
结束语
本节内容我觉得应该还可以。希望大家能够学好本节知识。
专栏导航
本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏故划分为两个专栏导航。读者可以自行选择前往哪个专栏。
一WIn32 专栏导航
上一篇计算机基础编码02有符号数编码原码
回到目录
下一篇无
二MFC 专栏导航
上一篇计算机基础编码02有符号数编码原码
回到目录
下一篇无