取右端4到7位

题目:取一个整数a从右端开始的4~7位。

    public static void main(String[] args) {
        int num = 465897;
        String r = Integer.toBinaryString(num);
        System.out.println("整数二进制值:"+r);
        int num4 = num>>4;
        String intr = Integer.toBinaryString(num4);   //二进制下标从零开始,即移除0-3位
        System.out.println("整数左移四位:"+intr);
        //0代表32位个0,
        //~0代表32个1(11111111111111111111111111111111),
        //~0 << 4代表向左移四位,末尾补0(11111111111111111111111111110000),
        //~(~0 << 4)非代表取反(1111)
        int b = ~(~0 << 4);    //0-3位移除后,末尾为4-7,所以要得到末尾四位的数即可
        System.out.println(Integer.toBinaryString(b));
        System.out.println("整数右端的4-7位为:"+Integer.toBinaryString(b&(num>>4)));
    }

源码

取右端4-7位是取二进制的4-7位,下标从零开始即

要想取这个数需要先右移4位,把4-7位放到末尾.

然后在用这个数&1111即可取到4-7位

时间: 2024-11-03 13:20:44

取右端4到7位的相关文章

取一个整数a从右端开始的4~7位

题目:取一个整数a从右端开始的4-7位. 程序分析:可以这样考虑: (1)先使a右移4位. (2)设置一个低4位全为1,其余全为0的数.可用~(~0 < <4) (3)将上面二者进行&运算. 1 package com.li.FiftyAlgorthm; 2 3 import java.util.Scanner; 4 5 public class FS { 6 public static void main(String[] args) { 7 Scanner s = new Scan

63.取一个整数a从右端开始的4~7位。

//输入一个数据后用“/”和“%”分离 #include<iostream> using namespace std; int main() { int temp1,temp2; double n; begin: cout<<"please input an number:"<<endl; cin>>n; if(n<1000000) { cout<<"wrong input, please try again!

C语言取一个整数a从右端开始的4~7位的代码

工作过程中中,将内容过程中常用的内容备份一次,如下的资料是关于C语言取一个整数a从右端开始的4-7位的内容,应该能对小伙伴有所用. main(){unsigned a,b,c,d;scanf("%o",&a);b=a>>4;c=~(~0<<4);d=b&c;printf("%on%on",a,d);} 原文地址:https://blog.51cto.com/14137088/2394105

java例题_32 取一个整数a从右端开始的4~7位

1 /*32 [程序 32 左移右移] 2 题目:取一个整数 a 从右端开始的 4-7 位. 3 */ 4 5 /*分析 6 * 从右端开始的第四位相当于原数除以1000后结果的最后一位数, 7 * 而4~7位就相当于再除以1000的结果下再对10000取余! 8 * 可以int也可以long类型 9 * */ 10 11 package homework; 12 13 import java.util.Scanner; 14 15 public class _32 { 16 17 public

取给定正整数的指定bit位开始的指定长度的数据

#include "OJ.h" #include <iostream> #include <vector> using namespace std; /* Description 取给定正整数的指定bit位开始的指定长度的数据.bit位从右向左从0开始计算. Prototype unsigned int GetBitsValue(unsigned int input, unsigned int startbit, unsigned int bitlen) Inp

用Javascript取float型小数点后两位,例22.127456取成22.13,如何做?

1. 最笨的办法....... [我就怎么干的.........] 1function get()2{3    var s = 22.127456 + "";4    var str = s.substring(0,s.indexOf(".") + 3);5    alert(str);6} 2. 正则表达式效果不错 1<script type="text/javascript">2onload = function(){3    v

Lodop条形码竖条和值右端不对齐的解决方法

当Lodop条形码设置的宽度比较短,数值比较多的时候,会出现条码的竖条和右端不对齐.个人测试了一下,发现解决办法有三种:1.增加条形码的宽度.2.隐藏条码本身的值,用text文本代替.3.修改条形码下方数值的大小.默认的数值文字大小是9,缩小后可以显示在条码下方,和右端对齐,就是文字会比较小,比较条码本身设置的比较小.测试代码: <head> <meta http-equiv="Content-Type" content="text/html; charse

取一个数的前几位

先看对数的性质,loga(b^c)=c*loga(b),loga(b*c)=loga(b)+loga(c); (每次给的数位数都不确定,通过取对数变得很简单)假设给出一个数10234432,用科学计数法1.0234432*10^7表示,那么log10(10234432)=log10(1.0234432*10^7)=log10(1.0234432)+7; log10(1.0234432)就是log10(10234432)的小数部分.(这里的小数部分,个位数字不是0,科学计数法嘛) log10(1.

Fiddler捕获抓取 App端数据包

最近项目设计到App抓包,所以采用Fiddler工具来采集获取APP数据包,但是fiddler对有些app是无法捕获到数据包的,以下是我的处理方法: 1. 我默认代理端口使用的是自定义的端口而不是默认的8888端口: 2. 手机端安装Fiddler证书,电脑端关闭防火墙 对我采集的app来说亲测有效能获取到数据包,记录一下操作过程: 以下是我对安卓App进行抓取的步骤: 1.   Fiddler下载地址(http://fiddler2.com/) 2.  安装到电脑,我的电脑系统是Win10 3