按位 & 运算符的目的是什么

What is the purpose of the Bitwise & operator

我正在开发一个通过 ble 进行通信的应用程序。它采用用户输入的密码并将其转换为字节列表,然后再将其发送到 ble 设备。

List<int> _passWordToByteList(int password) {
  List<int> ret = [];
  ret.add(password & 0xff);
  ret.add((password >> 8) & 0xff);
  ret.add((password >> 16) & 0xff);
  ret.add((password >> 24) & 0xff);

  return ret;
}

我已经多次阅读 dart 文档,但我似乎无法理解操作数的用途以及为什么我们需要它来将密码转换为字节列表。

BLE 以字节为单位通过空中发送数据。这意味着大于 255 的值必须作为字节序列发送。 BLE 以小端格式发送这些字节。您问题中的代码采用 int32 并将其转换为 little endian 格式的 4 字节列表。

尽管 Dart 语言确实提供了库来帮助完成此操作,但可以按照您的示例进行转换:

https://api.dart.dev/stable/2.16.1/dart-typed_data/dart-typed_data-library.html

如何使用它的示例位于: