C语言 |
您所在的位置:网站首页 › c语言输出一个数的二进制形式 › C语言 |
C语言-什么是原码,反码,补码?
做而论道_CS: 另外,由补码换算到十进制数,也是极其简单的事。 你只需记住:【补码首位的权,是负数】。 一般的八位二进制数,各个位的权是: 128、64、32、16、8、4、2、1; 如果是八位的补码,各个位的权则是: -128、64、32、16、8、4、2、1。 例如,有一个补码:1110 0001, 它代表的十进制是:-128 + 64 + 32 + 1= -31。 再看,另一个补码:0110 0001, 它代表的十进制是:0 + 64 + 32 + 1 = +97。 仅仅使用【进制转换】,不就完事了! 你还要啥自行车啊 C语言-什么是原码,反码,补码?做而论道_CS: 学习计算机,首先要注意到: 1、计算机,使用二进制数。 2.、计算机中,只有加法器。 负数或减法,都必须用加法来运算。 3、 计算机进行运算时,位数,是固定的。 八位机的加数、和,都是八位二进制数。 那么,14-14 = 0,计算机将要怎样计算呢? 八位机的运算如下: 0000 1110+xxxx xxxx = 0000 0000。 其中的 xxxx xxxx,就是-14 ! 这个 xxxx xxxx,究竟是什么? 你一定会推导的。 先移项:xxxx xxxx = 0000 0000-0000 1110。 可得出:xxxx xxxx = (借位 1) 1111 0010。 取八位:xxxx xxxx = 1111 0010。 因此,-14,存在计算机中,就是:1111 0010。 也可写成十进制数:242。 这就是计算机专家 “发明” 的补码了: [-14 ]补码 = 242 = 1111 0010 (二进制)。 负数的补码,就是这么推导出来的。 补码,和 “原码反码” 以及 “取反加一”, 一丁点的关系,都没有啊。 ---------------------- 实际上,任意负数(-X)的补码,都是:0 - X。 你用二进制简单算一下,立刻就能得到结果。 (-128 的 8 位补码,也就是这样求出来的。) 同理,任意正数(+X)的补码,也都是:0 + X。 这还用算? 0 + X,不就是 X 吗? 即,零和正数的补码,就是 X 本身! ---------------------- 求补码,就是这么简单! 你只要学会了二进制减法,你自己就能求补码。 根本就不用学习 “什么什么教程”。 真值机器数符号位原码反码取反加一符号位不变模 ... 这一大堆废话,都是用不上的垃圾。 你就是全背下来了,你也不可能理解: 减法运算,怎么就变成加法 ! 谁要是跟老外学算术, 立刻、马上、直接,就掉沟里去了! C语言-什么是原码,反码,补码?做而论道_CS: 哪有什么原码反码补码啊! 不过是【卖拐、忽悠】而已。 码长八位时,各码的表示范围如下。 原码:-127 ~ +127; 反码:-127 ~ +127; 补码:-128 ~ +127。 -128 只有补码,没有原码和反码! 没有原码,拿什么取反? 没有反码,拿什么加一? 既然取反加一不可用,那么, -128 的补码,又是怎么来的? 是特殊规定的吗? 不是的,各个数的补码,都是算出来的。 算法,并不是 “原码取反加一”! Python-题目:编写一个程序,当输入一个整数时,用英语单词输出该数的每一位数字 例如:输入3567,输出:first_digit second_digit third_digitReol、: 你需要修改一下代码,这是Python语言,改成C语言就行 Python-题目:编写一个程序,当输入一个整数时,用英语单词输出该数的每一位数字 例如:输入3567,输出:first_digit second_digit third_digit困困星: C语言的话能用这个吗?那个我们用的书是C与C语言程序设计(北京大学出版社的) |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |