我使用android BLE。
需要将特征当前时间写为32位UNIX时间戳。之后写入当前时区与UTC的偏移量,以秒为单位。可能问题在于转换为32字节数组,但我不是100%肯定。
我做到了,但出了点问题。它上升非常快,最终通过0x7FFF,FFFF,即它溢出并变为负值,因为时间戳是有符号整数。
echo "The $1 has reached its limit in region $2"
where $1 would be internet gateway and $2 would be eu-west-1
答案 0 :(得分:1)
关注this您正在使用权限转换。
在java中
默认情况下,int数据类型是32位有符号的二进制补码 整数,其最小值为-0x7FFFFFFF和最大值 0x7FFFFFFF-1 oracle。
所以这只是演示文稿的问题(而不是数据)。有类似的情况,通过ARGB重复显示int - 它需要4 * 8位,因此值一次为positvie,否则为负,如果你只想显示它。
要显示所需的值,您可以将byte []转换为long,就像在此example
中一样答案 1 :(得分:0)
我解决了这个int到字节数组代码转换的问题
byte[] offsetFromUtcByteArray = ByteBuffer.allocate(4).order(LITTLE_ENDIAN).putInt((int) offsetFromUtc).array();
和
byte[] currentDate = ByteBuffer.allocate(4).order(LITTLE_ENDIAN).putInt((int) unixTime).array();