📜  前三位和后三位

📅  最后修改于: 2021-04-24 15:16:44             🧑  作者: Mango

给定整数N。任务是打印N二进制表示形式前三位后三位十进制等效项。
例子:

简单方法:

  • N转换为二进制并将这些位存储在数组中。
  • 将数组中的前三个值转换为等效的十进制数并进行打印。
  • 同样,将数组中的最后三个值转换为等效的十进制数并进行打印。

下面是上述方法的实现:

C++
// C++ implementation of the approach
#include 
using namespace std;
 
// Function to print the first
// and last 3 bits equivalent decimal number
void binToDecimal3(int n)
{
    // Converting n to binary
    int a[64] = { 0 };
    int x = 0, i;
    for (i = 0; n > 0; i++) {
        a[i] = n % 2;
        n /= 2;
    }
 
    // Length of the array has to be at least 3
    x = (i < 3) ? 3 : i;
 
    // Convert first three bits to decimal
    int d = 0, p = 0;
    for (int i = x - 3; i < x; i++)
        d += a[i] * pow(2, p++);
 
    // Print the decimal
    cout << d << " ";
 
    // Convert last three bits to decimal
    d = 0;
    p = 0;
    for (int i = 0; i < 3; i++)
        d += a[i] * pow(2, p++);
 
    // Print the decimal
    cout << d;
}
 
// Driver code
int main()
{
    int n = 86;
 
    binToDecimal3(n);
    return 0;
}


Java
//Java implementation of the approach
 
import java.math.*;
public class GFG {
 
    //Function to print the first
    //and last 3 bits equivalent decimal number
    static void binToDecimal3(int n)
    {
     // Converting n to binary
     int a[] = new int[64] ;
     int x = 0, i;
     for (i = 0; n > 0; i++) {
         a[i] = n % 2;
         n /= 2;
     }
 
     // Length of the array has to be at least 3
     x = (i < 3) ? 3 : i;
 
     // Convert first three bits to decimal
     int d = 0, p = 0;
     for (int j = x - 3; j < x; j++)
         d += a[j] * Math.pow(2, p++);
 
     // Print the decimal
     System.out.print( d + " ");
 
     // Convert last three bits to decimal
     d = 0;
     p = 0;
     for (int k = 0; k < 3; k++)
         d += a[k] * Math.pow(2, p++);
 
     // Print the decimal
     System.out.print(d);
    }
 
    //Driver code
    public static void main(String[] args) {
         
        int n = 86;
 
         binToDecimal3(n);
 
    }
 
}


Python3
# Python 3 implementation of the approach
from math import pow
 
# Function to print the first and last 3
# bits equivalent decimal number
def binToDecimal3(n):
     
    # Converting n to binary
    a = [0 for i in range(64)]
    x = 0
    i = 0
    while(n > 0):
        a[i] = n % 2
        n = int(n / 2)
        i += 1
 
    # Length of the array has to
    # be at least 3
    if (i < 3):
        x = 3
    else:
        x = i
 
    # Convert first three bits to decimal
    d = 0
    p = 0
    for i in range(x - 3, x, 1):
        d += a[i] * pow(2, p)
        p += 1
 
    # Print the decimal
    print(int(d), end =" ")
 
    # Convert last three bits to decimal
    d = 0
    p = 0
    for i in range(0, 3, 1):
        d += a[i] * pow(2, p)
        p += 1
 
    # Print the decimal
    print(int(d),end = " ")
 
# Driver code
if __name__ == '__main__':
    n = 86
 
    binToDecimal3(n)
     
# This code is contributed by
# Sanjit_Prasad


C#
// C# implementation of the approach
using System;
 
class GFG
{
 
// Function to print the first and last
// 3 bits equivalent decimal number
static void binToDecimal3(int n)
{
     
    // Converting n to binary
    int [] a= new int[64] ;
    int x = 0, i;
    for (i = 0; n > 0; i++)
    {
        a[i] = n % 2;
        n /= 2;
    }
 
    // Length of the array has to be
    // at least 3
    x = (i < 3) ? 3 : i;
     
    // Convert first three bits to decimal
    int d = 0, p = 0;
    for (int j = x - 3; j < x; j++)
        d += a[j] *(int)Math.Pow(2, p++);
     
    // Print the decimal
    int d1 = d;
     
    // Convert last three bits to decimal
    d = 0;
    p = 0;
    for (int k = 0; k < 3; k++)
        d += a[k] * (int)Math.Pow(2, p++);
     
    // Print the decimal
    Console.WriteLine(d1 + " " + d);
}
 
// Driver code
static void Main()
{
    int n = 86;
 
    binToDecimal3(n);
}
}
 
// This code is contributed by Mohit kumar 29


Javascript


C++
// C++ implementation of the approach
#include 
using namespace std;
 
// Function to print the first
// and last 3 bits equivalent decimal
// number
void binToDecimal3(int n)
{
    // Number formed from last three
    // bits
    int last_3 = ((n & 4) + (n & 2) + (n & 1));
 
    // Let us get first three bits in n
    n = n >> 3;
    while (n > 7)
        n = n >> 1;
 
    // Number formed from first three
    // bits
    int first_3 = ((n & 4) + (n & 2) + (n & 1));
 
    // Printing result
    cout << first_3 << " " << last_3;
}
 
// Driver code
int main()
{
    int n = 86;
    binToDecimal3(n);
    return 0;
}


Java
// Java implementation of the approach
import java.util.*;
 
class GFG
{
 
// Function to print the first
// and last 3 bits equivalent
// decimal number
static void binToDecimal3(int n)
{
    // Number formed from last three
    // bits
    int last_3 = ((n & 4) +
                  (n & 2) + (n & 1));
 
    // Let us get first three bits in n
    n = n >> 3;
    while (n > 7)
        n = n >> 1;
 
    // Number formed from first
    // three bits
    int first_3 = ((n & 4) +
                   (n & 2) + (n & 1));
 
    // Printing result
    System.out.println(first_3 + " " + last_3);
}
 
// Driver code
public static void main(String args[])
{
    int n = 86;
    binToDecimal3(n);
}
}
 
// This code is contributed by
// Surendra_Gangwar


Python3
# Python3 implementation of the approach
 
# Function to print the first and
# last 3 bits equivalent decimal
# number
def binToDecimal3(n) :
     
    # Number formed from last three
    # bits
    last_3 = ((n & 4) + (n & 2) + (n & 1));
 
    # Let us get first three bits in n
    n = n >> 3
    while (n > 7) :
        n = n >> 1
 
    # Number formed from first three
    # bits
    first_3 = ((n & 4) + (n & 2) + (n & 1))
 
    # Printing result
    print(first_3,last_3)
 
# Driver code
if __name__ == "__main__" :
 
    n = 86
    binToDecimal3(n)
 
# This code is contributed by Ryuga


C#
// C# implementation of the approach
using System;
 
class GFG
{
     
// Function to print the first
// and last 3 bits equivalent
// decimal number
static void binToDecimal3(int n)
{
    // Number formed from last three
    // bits
    int last_3 = ((n & 4) +
                (n & 2) + (n & 1));
 
    // Let us get first three bits in n
    n = n >> 3;
    while (n > 7)
        n = n >> 1;
 
    // Number formed from first
    // three bits
    int first_3 = ((n & 4) +
                (n & 2) + (n & 1));
 
    // Printing result
    Console.WriteLine(first_3 + " " + last_3);
}
 
// Driver code
static public void Main ()
{
    int n = 86;
    binToDecimal3(n);
}
}
 
// This code is contributed by akt_mit..


PHP
> 3;
    while ($n > 7)
        $n = $n >> 1;
 
    // Number formed from first three
    // bits
    $first_3 = (($n & 4) + ($n & 2) + ($n & 1));
 
    // Printing result
    echo($first_3);
    echo(" ");
    echo($last_3);
}
 
// Driver code
$n = 86;
binToDecimal3($n);
 
// This code is contributed
// by Shivi_Aggarwal
?>


Javascript


输出:
5 6

高效方法:
我们可以使用按位运算运算符来查找所需的数字。

C++

// C++ implementation of the approach
#include 
using namespace std;
 
// Function to print the first
// and last 3 bits equivalent decimal
// number
void binToDecimal3(int n)
{
    // Number formed from last three
    // bits
    int last_3 = ((n & 4) + (n & 2) + (n & 1));
 
    // Let us get first three bits in n
    n = n >> 3;
    while (n > 7)
        n = n >> 1;
 
    // Number formed from first three
    // bits
    int first_3 = ((n & 4) + (n & 2) + (n & 1));
 
    // Printing result
    cout << first_3 << " " << last_3;
}
 
// Driver code
int main()
{
    int n = 86;
    binToDecimal3(n);
    return 0;
}

Java

// Java implementation of the approach
import java.util.*;
 
class GFG
{
 
// Function to print the first
// and last 3 bits equivalent
// decimal number
static void binToDecimal3(int n)
{
    // Number formed from last three
    // bits
    int last_3 = ((n & 4) +
                  (n & 2) + (n & 1));
 
    // Let us get first three bits in n
    n = n >> 3;
    while (n > 7)
        n = n >> 1;
 
    // Number formed from first
    // three bits
    int first_3 = ((n & 4) +
                   (n & 2) + (n & 1));
 
    // Printing result
    System.out.println(first_3 + " " + last_3);
}
 
// Driver code
public static void main(String args[])
{
    int n = 86;
    binToDecimal3(n);
}
}
 
// This code is contributed by
// Surendra_Gangwar

Python3

# Python3 implementation of the approach
 
# Function to print the first and
# last 3 bits equivalent decimal
# number
def binToDecimal3(n) :
     
    # Number formed from last three
    # bits
    last_3 = ((n & 4) + (n & 2) + (n & 1));
 
    # Let us get first three bits in n
    n = n >> 3
    while (n > 7) :
        n = n >> 1
 
    # Number formed from first three
    # bits
    first_3 = ((n & 4) + (n & 2) + (n & 1))
 
    # Printing result
    print(first_3,last_3)
 
# Driver code
if __name__ == "__main__" :
 
    n = 86
    binToDecimal3(n)
 
# This code is contributed by Ryuga

C#

// C# implementation of the approach
using System;
 
class GFG
{
     
// Function to print the first
// and last 3 bits equivalent
// decimal number
static void binToDecimal3(int n)
{
    // Number formed from last three
    // bits
    int last_3 = ((n & 4) +
                (n & 2) + (n & 1));
 
    // Let us get first three bits in n
    n = n >> 3;
    while (n > 7)
        n = n >> 1;
 
    // Number formed from first
    // three bits
    int first_3 = ((n & 4) +
                (n & 2) + (n & 1));
 
    // Printing result
    Console.WriteLine(first_3 + " " + last_3);
}
 
// Driver code
static public void Main ()
{
    int n = 86;
    binToDecimal3(n);
}
}
 
// This code is contributed by akt_mit..

的PHP

> 3;
    while ($n > 7)
        $n = $n >> 1;
 
    // Number formed from first three
    // bits
    $first_3 = (($n & 4) + ($n & 2) + ($n & 1));
 
    // Printing result
    echo($first_3);
    echo(" ");
    echo($last_3);
}
 
// Driver code
$n = 86;
binToDecimal3($n);
 
// This code is contributed
// by Shivi_Aggarwal
?>

Java脚本


输出:
5 6
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”