zoukankan      html  css  js  c++  java
  • 原码补码反码

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdlib.h>
    #include <stdio.h>
    char stry[33] = { 0 };
    char strf[33] = { 0 };
    char strb[33] = { 0 };
    
    void bcode(int num)
    {
        unsigned int data = 1 << 31;//左移31位
        for (int i = 1; i <= 32; i++)
        {
            if (num&data)
            {
                strb[i - 1] = '1';
            }
            else
            {
                strb[i - 1] = '0';  
            }
    
            num <<= 1; 
        }
    }
    
    void ycode(int num)
    {
        unsigned int data = 1 << 31;//左移31位
    
        if (num < 0)
        {
            num = ~num + 1;
            num = num | data;//确保符号位是1 后面都不变
        }
    
        for (int i = 1; i <= 32; i++)
        {
            if (num&data)
            {
                stry[i - 1] = '1';
            }
            else
            {
                stry[i - 1] = '0';
            }
    
            num <<= 1;
        }
    }
    
    void fcode(int num)
    {
        unsigned int data = 1 << 31;//左移31位
    
        if (num < 0)
        {
            num = num - 1;
        }
    
        for (int i = 1; i <= 32; i++)
        {
            if (num&data)
            {
                strf[i - 1] = '1';
            }
            else
            {
                strf[i - 1] = '0';
            }
    
            num <<= 1;
        }
    }
    
    void main()
    {
        int num;
        scanf("%d", &num);
        ycode(num);
        bcode(num);
        fcode(num);
        printf("原码:%s", stry);
        printf("
    反码:%s", strf);
        printf("
    补码:%s", strb);
        system("pause");
    }
  • 相关阅读:
    LeetCode
    数据流中的中位数
    二叉搜索树的第k个结点
    对称的二叉树
    按之字形顺序打印二叉树
    把二叉树打印成多行
    二叉树的下一个结点
    链表中环的入口结点
    删除链表中重复的结点
    不用加减乘除做加法
  • 原文地址:https://www.cnblogs.com/xiaochi/p/5092561.html
Copyright © 2011-2022 走看看