{"version":"https://jsonfeed.org/version/1.1","title":"苏迟但到的主页","home_page_url":"https://kexohproject.pages.dev","feed_url":"https://kexohproject.pages.dev/json/","description":"<p>你好，欢迎访问个人主页！</p><p>擅长密码学，安全分析，数字水印等技术。</p><p>你可以联系我通过:findmykexin@gmail.com或者知乎私信。</p><p>我的知乎链接：<a href=\"https://www.zhihu.com/people/su-chi-dan-dao\" rel=\"noopener noreferrer\" target=\"_blank\">苏迟但到 - 知乎 (zhihu.com)</a></p><p>我的github链接：<a href=\"https://github.com/kexinoh\" rel=\"noopener noreferrer\" target=\"_blank\">kexinoh</a></p>","icon":"https://kexohcdn.gptapi.cyou/kexohproject/production/images/channel-2e54d141ee195646ca12a9d16507a908.jpg","favicon":"https://kexohcdn.gptapi.cyou/kexohproject/production/images/favicon-340a2925d02a0386f3b954a032834917.jpg","authors":[{"name":"苏迟但到"}],"language":"zh-cn","items":[{"id":"pcLzYZeUyBQ","title":"为什么非要用移码而不是原码来比较整数大小?","content_html":"<p data-pid=\"iHGW-mQF\">因为移码是比较数字大小的编程量最小方法。</p><p data-pid=\"IR__4zW8\">给你两个原码你要怎么比较大小呢？（注意，这个时候你只有硬件可以使用，既且或非移位）</p><p data-pid=\"2x7Uuo99\">例如0 1101111和1 0010010，又比如111000和100111</p><p data-pid=\"QuXWXhB5\">我们来画一个流程图，看看原码比较大小模型下的复杂程度。</p><figure data-size=\"normal\"><noscript><img src=\"https://pic1.zhimg.com/v2-c7eb81fac1d93a8a0cb0d0d49efae560_b.jpg\" data-caption=\"\" data-size=\"normal\" data-rawwidth=\"505\" data-rawheight=\"608\" data-original-token=\"v2-418617325c2e3aa713f103253ca937c6\" data-default-watermark-src=\"https://pic4.zhimg.com/v2-7be78670adae8a51c422a56b5a0f98eb_b.jpg\" class=\"origin_image zh-lightbox-thumb\" width=\"505\" data-original=\"https://pic1.zhimg.com/v2-c7eb81fac1d93a8a0cb0d0d49efae560_r.jpg\"/></noscript><img src=\"data:image/svg+xml;utf8,&lt;svg xmlns=&#39;http://www.w3.org/2000/svg&#39; width=&#39;505&#39; height=&#39;608&#39;&gt;&lt;/svg&gt;\" data-caption=\"\" data-size=\"normal\" data-rawwidth=\"505\" data-rawheight=\"608\" data-original-token=\"v2-418617325c2e3aa713f103253ca937c6\" data-default-watermark-src=\"https://pic4.zhimg.com/v2-7be78670adae8a51c422a56b5a0f98eb_b.jpg\" class=\"origin_image zh-lightbox-thumb lazy\" width=\"505\" data-original=\"https://pic1.zhimg.com/v2-c7eb81fac1d93a8a0cb0d0d49efae560_r.jpg\" data-actualsrc=\"https://pic1.zhimg.com/v2-c7eb81fac1d93a8a0cb0d0d49efae560_b.jpg\"/></figure><p data-pid=\"_4n1xcgo\">你看要直接比较原码大小这么复杂，因此在比大小的时候往往会使用移码比较。</p><p data-pid=\"P4uSLEQF\">移码是什么？</p><p data-pid=\"ziiGzwyu\">移码本质是这个公式： <img src=\"https://www.zhihu.com/equation?tex=a%3D%28b%2B128%29+%5Cmod+256\" alt=\"a=(b+128) \\mod 256\" eeimg=\"1\"/> .</p><p data-pid=\"hw2pBj5h\">.我们小学二年级真的就学过这个公式 <img src=\"https://www.zhihu.com/equation?tex=a%3Eb%5CLeftrightarrow+a%2B128%3Eb%2B128\" alt=\"a&gt;b\\Leftrightarrow a+128&gt;b+128\" eeimg=\"1\"/> 。</p><p data-pid=\"Gdk7mD9J\">这个公式帮助我们将数字从 <img src=\"https://www.zhihu.com/equation?tex=%5B-127%2C127%5D%5CRightarrow%5B1%2C255%5D\" alt=\"[-127,127]\\Rightarrow[1,255]\" eeimg=\"1\"/> .其中[1,255]都是正数，我们只需要从高位1的出现，就可以快速的判断出大小。</p><p data-pid=\"AgMEIf2F\">至于小数和整数本质没有区别，小数也可以生成自己的移码。</p><p data-pid=\"D0PafzkP\"><b>Tip</b>:移码表示中，0有唯一的编码——1000…00，当出现000…00时（表示－2En），属于浮点数下溢。因此不考虑负0的比较大小问题。</p><p data-pid=\"tH6-LZjY\">因此我们可以很少的硬件部分就实现了两个数的大小比较，这样才有利于提高速度。</p><p data-pid=\"uc-K_hSf\"><b>Tips:</b>在IEEE 754当中，阶码也是移码，但是它的偏置值是127，也就是说 <img src=\"https://www.zhihu.com/equation?tex=%5B-126%2C127%5D%5CRightarrow%5B1%2C254%5D\" alt=\"[-126,127]\\Rightarrow[1,254]\" eeimg=\"1\"/> 。</p><p data-pid=\"dmLiAVMq\">那如果阶码出现了0或者255会出现什么情况呢？</p><p data-pid=\"fv3pyX2A\">如果阶码是0的话，符号位是0，则这个数是正0.符号为1的话是负0.</p><p data-pid=\"vFiaj1mP\">如果阶码是255的话，符号位是0，则这个数是正无穷，符号位是1的话则是负无穷。</p><p data-pid=\"i8pKUixB\">引入这两个数字的情况下，是为了计算出现异常情况下，依然将程序继续进行下去。</p><p data-pid=\"RXtsfA9X\">推荐一本好书，欢迎大家购买。</p><a data-draft-node=\"block\" data-draft-type=\"mcn-link-card\" data-mcn-id=\"1533444822978818048\"></a><p></p>","content_text":"因为移码是比较数字大小的编程量最小方法。\n\n给你两个原码你要怎么比较大小呢？（注意，这个时候你只有硬件可以使用，既且或非移位）\n\n例如0 1101111和1 0010010，又比如111000和100111\n\n我们来画一个流程图，看看原码比较大小模型下的复杂程度。\n\n[https://pic1.zhimg.com/v2-c7eb81fac1d93a8a0cb0d0d49efae560_b.jpg][data:image/svg+xml;utf8,&lt;svg\nxmlns=&#39;http://www.w3.org/2000/svg&#39; width=&#39;505&#39;\nheight=&#39;608&#39;&gt;&lt;/svg&gt;]\n\n你看要直接比较原码大小这么复杂，因此在比大小的时候往往会使用移码比较。\n\n移码是什么？\n\n移码本质是这个公式： a=(b+128) \\mod 256\n[https://www.zhihu.com/equation?tex=a%3D%28b%2B128%29+%5Cmod+256] .\n\n.我们小学二年级真的就学过这个公式 a>b\\Leftrightarrow a+128>b+128\n[https://www.zhihu.com/equation?tex=a%3Eb%5CLeftrightarrow+a%2B128%3Eb%2B128] 。\n\n这个公式帮助我们将数字从 [-127,127]\\Rightarrow[1,255]\n[https://www.zhihu.com/equation?tex=%5B-127%2C127%5D%5CRightarrow%5B1%2C255%5D]\n.其中[1,255]都是正数，我们只需要从高位1的出现，就可以快速的判断出大小。\n\n至于小数和整数本质没有区别，小数也可以生成自己的移码。\n\nTip:移码表示中，0有唯一的编码——1000…00，当出现000…00时（表示－2En），属于浮点数下溢。因此不考虑负0的比较大小问题。\n\n因此我们可以很少的硬件部分就实现了两个数的大小比较，这样才有利于提高速度。\n\nTips:在IEEE 754当中，阶码也是移码，但是它的偏置值是127，也就是说 [-126,127]\\Rightarrow[1,254]\n[https://www.zhihu.com/equation?tex=%5B-126%2C127%5D%5CRightarrow%5B1%2C254%5D]\n。\n\n那如果阶码出现了0或者255会出现什么情况呢？\n\n如果阶码是0的话，符号位是0，则这个数是正0.符号为1的话是负0.\n\n如果阶码是255的话，符号位是0，则这个数是正无穷，符号位是1的话则是负无穷。\n\n引入这两个数字的情况下，是为了计算出现异常情况下，依然将程序继续进行下去。\n\n推荐一本好书，欢迎大家购买。\n\n","date_published":"2022-07-21T05:35:38.000Z","_microfeed":{"web_url":"https://kexohproject.pages.dev/i/为什么非要用移码而不是原码来比较整数大小-pcLzYZeUyBQ/","json_url":"https://kexohproject.pages.dev/i/pcLzYZeUyBQ/json/","rss_url":"https://kexohproject.pages.dev/i/pcLzYZeUyBQ/rss/","guid":"pcLzYZeUyBQ","status":"published","itunes:title":"New Article Title for iTunes","date_published_short":"Thu Jul 21 2022","date_published_ms":1658381738000}}],"_microfeed":{"microfeed_version":"0.1.2","base_url":"https://kexohproject.pages.dev","categories":[{"name":"Education","categories":[{"name":"Language Learning"}]},{"name":"Technology"}],"subscribe_methods":[{"name":"RSS","type":"rss","url":"https://kexohproject.pages.dev/rss/","image":"https://kexohproject.pages.dev/assets/brands/subscribe/rss.png","enabled":true,"editable":false,"id":"4KlfbtkEfzy"},{"name":"JSON","type":"json","url":"https://kexohproject.pages.dev/json/","image":"https://kexohproject.pages.dev/assets/brands/subscribe/json.png","enabled":true,"editable":false,"id":"DVFm7TYiNSq"}],"description_text":"你好，欢迎访问个人主页！\n\n擅长密码学，安全分析，数字水印等技术。\n\n你可以联系我通过:findmykexin@gmail.com或者知乎私信。\n\n我的知乎链接：苏迟但到 - 知乎 (zhihu.com)\n\n我的github链接：kexinoh","copyright":"©2024","itunes:type":"episodic","items_sort_order":"newest_first"}}