android NFC getId 後進製轉換

2021-08-02 17:53:05 字數 956 閱讀 3594

進製轉換的**詳見我的另一篇部落格:

最近專案用到nfc,nfc的標籤是嵌在手錶上的

需求是這樣的:手錶顯示nfc的tagid(不是標籤的id,是tagid),顯示的時候是十進位制,然後獲取到id後到服務端獲取資料

本來這需求挺簡單的,而且實現起來也沒啥難度

那麼我先獲取tagid的資料

// 取出封裝在intent中的tag

tag tagfromintent = intent.getparcelableextra(nfcadapter.extra_tag);//也可使用intent.getbytearrayextra(nfcadapter.extra_id)直接獲取tagid;

byte tagbytes = tagfromintent.getid();

好了!tagid的位元組資料拿到了,那麼下面應該是轉換進製了,因為手錶上顯示的十進位制

bytebuffer buffer = bytebuffer.wrap(tagbytes);

//不足十位數,左補0,這是廠家這麼規定的

//"%010d"中0代表前面要補的字元 10代表字串長度,d表示引數為整數型別

string nfc_id= string.format("%010d", buffer.getint());

這時候nfc_id應該就是手錶上顯示的十進位制數字了,滿懷歡喜的run了一下

但是!!!!我這人最怕但是、、、、

顯然是跟手錶上的不一樣,然後我又轉成十六進製制,又下了個讀取nfc標籤的應用,

好嘛!這是大小端的問題,這時候只需要在buff.mark();後面加上這行**

buffer.order(byteorder.little_endian);// 高位元組在高位址, 低位元組在低位址
再跑一下,這時候nfc_id就跟手錶上顯示的一樣了

16進製制轉2進製再轉8進製

藍橋杯刷題計畫,由於最大有十萬位16進製制數,所以直接選擇整形是無法儲存的,考慮到16進製制,8進製,2進製之間的關係,所以我們選擇,先轉2進製,再有2進製轉換為8進製。由於,一位16進製制數對應4位2進製數,一位8進製數對應3位2進製數,於是,我們可以用先用map進行乙個對映儲存,便於直接取用。另...

10進製轉2進製

題目 將10進製數字轉換為2進製。思考 進製轉換有三種情況。十進位制轉二,八,十六進製制 三種轉化的方法類似,我重點說十進位制轉二進位制的方法,其餘兩種情況可以模擬。十進位制轉二進位制 方法 10進製數字,整數部分除2後每次餘數反向取 小數部分乘2直到小數部分為0 特殊情況取位數 將整數部分正向取。...

16進製制轉8進製

很有意思。開始沒注意題直接 x o 然後看到了 這個16進製制的數長度不超過100000 妥妥又是高精度問題。還有個錯誤就是把二進位制左右反了,導致半天找不出錯。然後就把二進位制打出來,找到了。大體思路就是16 2 8 如 f 1111 17 ff 1111 1111 011 111 111 377...