zoukankan      html  css  js  c++  java
  • 按字节提取整形数值(按位与运算符“&”、右移位运算符“>>”)

    输入一个十进制整数,将其转换成十六进制数输出,并提取每一字节所表示的十六进制数值逐一输出。测试数据如下:







    分析:从控制台输入一个十进制整数,将其转换成十六进制数输出,接着提取其4个字节。用到按位与运算符“&”、右移位运算符“>>”。


    ps:“0x”是十六进制数的前缀。位(bit):度量数据的最小单位,表示一位二进制信息;字节(byte):由八位二进制数字组成(1 byte = 8 bit)。1个字节表示2位十六进制数。


    新建一个Visual C# 控制台程序

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace _10_16_013
    {
        class Program
        {
            static void Main(string[] args)
            {
                /* 功能: 输入一个十进制整数,将其转换成十六进制数输出,并提取每一字节所表示的十六进制数值逐一输出
                 * 补充:位(bit):度量数据的最小单位,表示一位二进制信息。
                 *       字节(byte):由八位二进制数字组成(1 byte = 8 bit)。
                 */ 
    
                Console.WriteLine("输入一个整数:");
                int Num = int.Parse(Console.ReadLine());
                // 从控制台输入一个十进制整数
                Console.WriteLine("{0}的十六进制形式为0x{1:X8}",Num,Num);
                // X8表示十六进制格式(大写),域宽8位,不足的左边填0
    
                int Hex = Num & 0x000000FF;
                // 数值与0xFF按位与运算
                Console.WriteLine("第1个字节为:0x{0:X2}",Hex);
                // X2表示十六进制格式(大写),域宽2位,不足的左边填0
    
                Hex = Num >> 8 & 0x000000FF;
                // 数值右移8位与0xFF按位与运算
                Console.WriteLine("第2个字节为:0x{0:X2}", Hex);
                // X2表示十六进制格式(大写),域宽2位,不足的左边填0
    
                Hex = Num >> 16 & 0x000000FF;
                // 数值右移8位与0xFF按位与运算
                Console.WriteLine("第3个字节为:0x{0:X2}", Hex);
                // X2表示十六进制格式(大写),域宽2位,不足的左边填0
    
                Hex = Num >> 24 & 0x000000FF;
                // 数值右移8位与0xFF按位与运算
                Console.WriteLine("第4个字节为:0x{0:X2}", Hex);
                // X2表示十六进制格式(大写),域宽2位,不足的左边填0
            }
        }
    }
    



    当输入123456789时,对应的十六进制数为0x075BCD15。

    第1个字节为0x15,十进制为21。

    右移8位后,对应的十六进制数为0x00075BCD。

    第2个字节为0xCD,十进制为205。

    右移16位后,对应的十六进制数为0x0000075B。

    第3个字节为0x5B,十进制为91。

    右移32位后,对应的十六进制数为0x00000007。

    第4个字节为0x07,十进制为7。

    对应的,当输入其他数据时,依然这样逐步分析。

  • 相关阅读:
    开启休眠命令(用户找不到休眠复选框)
    小Q书桌(兼容win10)
    截图,仅截取活动窗口快捷键:Alt + Print Screen SysRq
    Windows10安装Dig命令工具
    拷贝文件保留原创建日期
    重装系统后,QQ(TIM)迁移聊天记录到指定位置
    完全拷贝命令
    Windows10/7 视频、图片、文档、音乐、收藏夹 等文件夹没有原始图标及中文名的解决方案
    js 判断日期大小、是否在时间范围内等处理
    Sql语句 表中相同的记录(某个字段)只显示一条,按照时间排序显示最大或最小
  • 原文地址:https://www.cnblogs.com/Genesis2018/p/8304751.html
Copyright © 2011-2022 走看看