Swift程序 查找给定数字的1的补数

Swift程序 查找给定数字的1的补数

二进制数字的1的补码是给定数字的倒数。例如,我们有一个数字=10101011,所以1的补码是01010100。在这里,我们使用以下两种方法来寻找1的补码 –

用0代替1,用1代替0

使用XOR

在这篇文章中,我们将学习如何编写一个Swift程序来寻找给定数字的1的补码。

方法1:用0替换1,用1替换0

这是找到给定数字的1的补数的最小方法。在这里,我们只需将给定的数字转换为二进制字符串,然后用1替换0,用0替换1,再将字符串转换为数字。

算法

  • 第1步 – 创建一个函数。

  • 第2步 – 将给定的数字转换成二进制字符串。

  • 3步 – 使用for-in循环来翻转比特并将结果存储到新的字符串中。

  • 4步 – 将字符串转换回数字。

  • 5步 – 创建一个变量来存储输入的数字并将其传递给函数。

  • 6步 – 打印输出。

例子

以下是Swift程序,用于查找给定数字的1的补码。

import Foundation
import Glibc

// Function to find one's complement 
func onesComplement(num: Int) -> Int {
   // Converting number into binary string
   let binaryString = String(number, radix: 2)
   var onecomplement = ""

   // Replacing 1s with 0s and 0s with 1s
   for char in binaryString {
      onecomplement += (char == "0") ? "1" : "0"
   }

   // Converting binary string back into number
   return Int(onecomplement, radix: 2)!
}

// Test input
let number = 22
let result = onesComplement(num: number)
print("One's complement of 22 is ", result)

输出

One's complement of 22 is  9

在上面的代码中,我们创建了一个函数来查找一的补码。在这个函数中,首先我们使用String()初始化器将输入的数字转换成一个二进制字符串。然后我们使用for循环遍历字符串的每个字符,用1替换0,用0替换1。然后用Int()初始化器将二进制字符串转换回数字。

方法2:使用XOR

在这个方法中,我们使用XOR找到一的补数。所以,在这里我们首先找到表示给定数字所需的比特数,然后通过在比特数的左移上加1来创建一个掩码。我们通过对给定的数字和掩码进行XOR操作来计算一的补数。

算法

  • 第1步 – 创建一个函数。

  • 第2步 – 将给定的数字转换成二进制字符串,然后计算总位数。

  • 3步 – XOR给定的整数。

let mask = (1 << count) – 1

让onecomplement = number ^ mask

  • 第4步 – 创建一个变量来存储输入的数字并将其传递给函数。

  • 5 步 – 打印输出。

例子

以下是Swift程序,用于查找给定数字的1的补码。

import Foundation
import Glibc

// Function to find one's complement 
func onesComplement(number: Int) -> Int {
    let count = String(number, radix: 2).count

    // XOR the given number
    let mask = (1 << count) - 1
    let onecomplement = number ^ mask
    return onecomplement
}

// Test input
let value = 9
print("One's complement of \(value) is \(onesComplement(number: value))")

输出

One's complement of 9 is 6

在上面的代码中,我们创建了一个函数来寻找一补。在这个函数中,首先我们计算出以二进制形式表示给定数字所需的总位数。然后用(1<<count)-1来计算掩码,用于XOR给定的数字。然后用掩码(number ^ mask)与给定的数字进行XOR,计算出1的补码,并返回结果。现在调用这个函数,并在其中输入数字,显示结果。

总结

在这篇文章中,我们学习了两种不同的方法来寻找一个给定数字的1的补码。在第一种方法中,我们只是将给定数字的1和0倒置,而在第二种方法中,我们使用XOR门来寻找1的补码。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Swift 教程