精华内容
下载资源
问答
  • 计算机中的二进制数及其操作

    千次阅读 2008-02-28 10:31:00
    在计算机中,数值通常用二进制补码来表示。二进制补码表示正数时与普通的二进制没有区别,但表示负数时就有区别了。当需要表示一负数的时候,它的补码将是“翻转正整数...十进制转换二进制数,对整数部分,除2取余


    在计算机中,数值通常用二进制补码来表示。二进制补码表示正数时与普通的二进制没有区别,但表示负数时就有区别了。当需要表示一个负数的时候,它的补码将是“翻转正整数记号中全部的位,然后再加上1”。比如-1的补码是11111111(+1是00000001,翻转之后为11111110,再加上1)。二进制补码的最高位是用来表示正负符号的,如果这是一个带符号数值。


    十进制转换数成二进制数,对整数部分,除2取余,对小数部分,乘2取整。
    0.416
    ×  2
    ------------------
    0.832 (0 取整数 高)
    ×  2
    ------------------
    1.664 (1 取整数)
    ×  2
    ------------------
    1.328 (1 取整数 低)

    注意:一个十进制小数不一定能完全准确地转换成二进制小数,这时可以根据精度要求只转换到小数点后某一位为止即可。目前只取小数点后3位的话是101101.011

    位操作符:
    “|”只要一个位是1,结果就是1。
    “&”如果两个位都是1,结果才为1。
    “^”如果两个位相同结果为0;如果两个位不同,结果为1。
    “>>”右移位运算符,产生的空位由符号位来补齐,如果是无符号数值,则用零补齐。
    “<<”左移位运算符,产生的空位由零来补齐。
    “>>>”产生的空位都由零来补齐(JAVA中特有的符号)。
     

    展开全文
  • 从键盘接收两个二进制数,(请考虑到用户可能会输入非0和1的,),输以二进制和十进制形式输出它们的和. #include #include #include #include using namespace std; int RecInput(char str[],const int &MaxLen...

    从键盘接收两个二进制数,(请考虑到用户可能会输入非0和1的数,),以二进制和十进制形式输出它们的和.


    #include <iostream>
    #include <string>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    int RecInput(char str[],const int &MaxLen); //从键盘接收输入 
    int BinToDec(char str[],const int &length); 
    void DecToBin(int num); 
    int main()
    {
        const int MaxLen=50;
        char BinNum1[MaxLen],BinNum2[MaxLen];
        int Num1Len,Num2Len;  //实际接收的位数
        Num1Len=RecInput(BinNum1,MaxLen);
        cout<<endl;
        Num2Len=RecInput(BinNum2,MaxLen);
        int total=0;
        total+=BinToDec(BinNum1,Num1Len);
        total+=BinToDec(BinNum2,Num2Len);
        cout<<"\nThe results is (Binary): "<<endl;
        DecToBin(total);
        cout<<"That is (Decimalism) : "<<total<<endl;
        return 0;
    }
    int RecInput(char str[],const int &MaxLen)
    {
        int length=0;
        cout<<"Please input a binary number:\n";
        for(;length<MaxLen-1;length++)
        {
            cin.get(str[length]);
            if(str[length]=='0'||str[length]=='1')
                continue;
            else if(str[length]!='\n')
            {
                int c;
                while((c = getchar()) != '\n');
            }
            break;
        }
        str[length]='\0';
        cout<<"You have input:"<<str<<endl;
        return length;
    }
    int BinToDec(char str[],const int &length)
    {
        int sum=0;
        for(int i=0;i<length;i++)
            sum=sum*2+(int)(str[i]-48);
        return sum;
    }
    void DecToBin(int num)
    {
        int Length=(int)(log(num)/log(2))+1, //二进制的位数
            FetchBit=pow(2,Length-1);  //取位
        for(int i=0;i<Length;i++)
        {
            //从高到底每次取一位
            int tmp=num&FetchBit;
            if(tmp==0)
                cout<<0;
            else
                cout<<1;
            FetchBit>>=1;
        }
        cout<<endl;
    }



        在RecInput()上犹豫了很久,主要是要考虑到用户可能会输入除了1和0之外的数,所以要先接收该字符再进行判断,当接收到这些数时,就只读入之前的0或1的数(例如输入了1010102345,则只接收101010),然后要刷新缓冲区(int c; while((c = getchar()) !='\n');)以供下次接收新的输入。这时问题就来了,刷新缓冲区是以回车符作为结束标志位的,但是假如用户输入的都是正常的1或0,那么回车符就会被提前接收,那么刷新缓冲区就会变成等待键盘输入,这样导致了用户输入的第二个二进制数被刷新掉了。不过最后还是解决了。

        然后这里十进制转换为二进制的算法不是用辗除法,而是用位运算,从高到低,每次取一位输出。



    展开全文
  • 二进制有符号加法

    万次阅读 2017-06-15 09:27:48
    二进制补码加法运算

    https://zhidao.baidu.com/question/329196379795134925.html


    就是把符号位当作数据位一样处理。

    //------------------------------------------------------------------------//
    https://zhidao.baidu.com/question/1990550670082265027.html?fr=iks&word=%D3%D0%B7%FB%BA%C5%CA%FD%BC%F5%B7%A8&ie=gbk
    
    补码加法运算溢出判断三种方法:
    [方法一]
    Xf、Yf分别两个数的符号位,Zf为运算结果符号位。
    当Xf =Yf =0(两数同为正),而Zf=1(结果为负)时,负溢出;
    当出现Xf =Yf =1(两数同为负),而Zf=0(结果为正),正溢出.
    [方法二]
    Cs表示符号位的进位,Cp表示最高数值位进位,⊕表示异或。
    若 Cs⊕Cp =0 ,无溢出;
    若 Cs⊕Cp =1 ,有溢出。
    [方法三]
    用变形补码进行双符号位运算(正数符为00,负数符号以11)
    若运算结果的符号位为"01",则正溢;
    若结果双符号为10,则负溢出;
    若结果的双符号位为00或11,无溢出。


    展开全文
  • C++二进制操作

    千次阅读 2019-03-18 23:08:47
    作用于两个二进制数,当然也可以对整型数据进行操作(当两边为整型数据会自动转化为二进制数).只有当对应位全为1时结果为1:  01011001 &00101001  结果为:00001001 2. | :或操作.和1的与操作类似.用来合并值....

    C++中常用的二进制运算符有六个,以下分别介绍:

    1.  &  :  与操作.作用于两个二进制数,当然也可以对整型数据进行操作(当两边为整型数据会自动转化为二进制数).只有当对应位全为1时结果为1:

        01011001 & 00101001

        结果为:00001001

    2. | :或操作.和1的与操作类似.用来合并值.只有当两个对应位都为0,结果位为0:

        01011001 | 00101001

        结果为:01111001

    3. ^ :异或操作.这个运算符当两个值在某一位上相同时结果位为0,不同结果为1.如一个是1一个是0,结果位是1;两个都为1或者0结果位是0:

        01011001^00101001

        结果为:01110000

    4.~ :求补操作.这个运算符只对一个二进制数据进行操作,对该数每一位取反,即1变为0;0变为1.例如:

        ~01011001

        结果为:10100110

    5-6.移位操作符.这两个操作符用来对一个值中的位左移或右移某个特定数字的位数.">>"右移操作."<<"左移操作.例如:

        01011001>>2  01011001<<2

        结果为:0010110  01100100

    展开全文
  • 正文原题:输出一张表,内容是1~126各个数字的十进制,二进制,八进制,十六进制。 初生牛犊啊。。第一反应是:这计算机应该会自己做吧?我用那什么叫啥来着。。格式控制就好了吧?一翻书,格式控制有是有...
  • #(给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。) 示例 1: 输入: a = “11”, b = “1” 输出: “100” 示例 2: 输入: a = “1010”, b = “1011” 输出: ...
  • CODE SEGMENT ASSUME CS:CODE start: mov dl,'?' mov ah,02h int 21h mov ah,01h int 21h cmp al,'0' jb start cmp al,'9' ja start ...
  • 查看两个int二进制有几位不同

    千次阅读 2015-04-25 14:39:34
    题目:查看两个int(32位)二进制有几位不同。  分析:要理解该题目的意思,就要明白C语言中关于位的一些操作。  1)“&",按位与操作,从低位到高位对两个数的每位进行与操作,如1001&1101=1001,都为1则取1...
  • 检测文件结尾的一种方法是, 在文件末尾放一特殊的字符标记文件尾。 CP/M、 IBMDOS和MS-DOS的文本文件曾经用过这种方法。 如今, 这些操作系统可以使用内嵌的Ctrl+Z字符来标记文件结尾。 这曾经是操作系统使用的...
  • 二进制中所有位从右向左每三分成一组,每组用一0到7之间的数字替代。 这替代结果叫做数字的八进制表示方式 0110 1010 01 101 010 152(八进制) 可以在程序中直接使用八进制方式表示数字,这时候必须...
  • 如果这个数是 876,我们可以断定它不是八进制数,因为八进制数中不可能出7以上的阿拉伯数字。但如果这个数是123、是567,或12345670,那么它是八进制数还是10进制数,都有可能。 所以,C,C++规定,一数如果要指明它...
  • 给定两个二进制字符串,返回他们的和(用二进制表示) 输入为非空字符串且只包含数字 1 和 0. 示例1: 输入:a = “11” , b = “1” 输出:“100” 示例2: 输入:a = “1010” , b = “1011” 输出:“10101” ...
  • Matlab中十六进制和二进制转换

    千次阅读 2020-06-11 17:47:00
    十六进制和二进制值 ...在 MATLAB® 中,有种方式来表示十六进制和二进制值: 作为字面值。从 R2019b 开始,您可以使用适当的前缀作为表示法,将十六进制和二进制值写成字面值。例如,字面值0x2A指定 42,MAT...
  • C语言入门_二进制数

    千次阅读 2018-03-26 14:01:17
    1,写一函数返回二进制中一的个数 比如:15 —– 0000 1111—— 41 #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int count_one_bits(unsigned int value) { int i = 0, count...
  • 数据类型:  字符类型-------char:256数字[-128,127]  每数字表示一字符. 97--------'a'
  • 二进制详解

    万次阅读 多人点赞 2018-06-25 17:22:30
    那如何把一十进制的转成二进制或者其他进制,请下图:十进制转二进制十进制的123转成二进制就是1111011,转成几进制都是一道理。一、二进制1.1 二进制是计算机采用的表示数字的方式, 每个数位上只有0和1;1.2 ...
  • 二进制浮点操作:用三字节表示,第一字节的最高位为数,其余七位为阶码(补码形式),第二字节为尾数的高字节,第三字节为尾数的低字节,尾数用双字节纯小数(原码)来表示。当尾数的最高位为1时,便称为...
  • ASCII码划分为两个集合:128个字符的标准ASCII码(7位二进制编码)和附加的128个字符的扩展ASCII码(8位二进制编码)。ASCII是英文American Standard Code for Information Interchange的缩写。ASCII码是目前计算机最...
  • 二进制有符号运算及溢出判别

    万次阅读 多人点赞 2019-09-02 16:32:19
    上面都是两个8bit相加,从左至右第一个bit位是符号位,第个bit位是最高数值位,如果结果超出8bit,则超出的位不会在计算机中存储,因此造成溢出现象 //-------------------------------------...
  • #include<iostream> #include<bitset> cout<<...八进制格式 cout<<dec<<tmp_data<<endl; 十进制格式 cout<<hex<<tmp_data<<endl;...
  • C语言十进制转二进制代码实例用C语言实现将十进制转化为二进制,并统计转换后的二进制码中1的个数。#include int binaryNum[16]; //存放转换后得到的二进制码int count=0; //计数十进制整数被2除的次数int oneCount=...
  • 二进制、八进制、十进制、十六进制关系及转换

    万次阅读 多人点赞 2019-02-21 21:20:22
    二进制,八进制,十进制,十六进制之间的关系是什么?浮点数是什么回事? 本文内容参考自王达老师的《深入理解计算机网络》一书&amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;中国水利水电出版社&amp;amp;amp;amp...
  • 有符号二进制数的减法

    千次阅读 2020-01-18 12:48:49
    有符号二进制数的减法 本人的简单学习过程。。。 题目:十进制6-12=-6,利用有符号位二进制写出来过程。
  • 算法--二进制/二进制枚举

    千次阅读 2020-01-30 10:46:07
    对于指定的两个数A=60(0011 1100) B=13(0000 1101) 执行一下操作 A&B=12(0000 1100) 就是对二进制每一位进行了一次与操作,同为1,结果 为1,否则为0。 2、或(|): 对于指定的两个数A=60(0011 1100) B=13(0000 ...
  •  从待转换的二进制数的小数点开始,分别向左、右两个方向进行; 每三位合并为一组,不足三位的以0补齐(注意:整数部分在前面补0,小数部分在末尾补0);然后每三位二进制数用相应的八进制码(0~7)表示,即完成...
  • 在这里我们以数字“7”为例(数字“7”的二进制为“111”,有三“1”),提供种方法来判断一个数二进制中“1”的 个数! 1.使用移位操作(右移操作)  让二进制的每一位&(逻辑与)1,如果得到的结果为...
  • 二进制换算成八进制、十进制、十六进制一、介绍:二、二进制转十进制计算二进制数转十进制的方法:(1)计算二进制数 0101 0101转十进制。(2)计算二进制数 1000 0101 转十进制:三、二进制转八进制计算二进制数转...
  • C语言中,控制printf函数输出格式的是格式字符,printf没有直接打出2进制数的格式,直接打出16进制的格式是x格式,即%x。 printf函数中输出的格式为printf("<格式化字符串>", <参量表>),格式化...
  • 计算机数据进制的变换 二进制 二进制表示其实就是在计算机中真实保存的数据状态,一字节分成八段,每段可以用来记录一0 或者1,要想把一数字记录在一字节...二进制中每个数位有一编号,最右边位的 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 344,743
精华内容 137,897
关键字:

二进制的两个数符分别是