国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++篇——在linux下將字節(jié)轉(zhuǎn)16進(jìn)制字符串, 16進(jìn)制字符串轉(zhuǎn)2進(jìn)制字符串

這篇具有很好參考價值的文章主要介紹了C++篇——在linux下將字節(jié)轉(zhuǎn)16進(jìn)制字符串, 16進(jìn)制字符串轉(zhuǎn)2進(jìn)制字符串。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、字節(jié)轉(zhuǎn)16進(jìn)制字符串

std::string bytestohexstring(char* bytes,int bytelength) {
    string str("");
    string str2("0123456789abcdef");
    for (int i = 0; i < bytelength; i++) {
        int b;
        b = 0x0f & (bytes[i] >> 4);
        str.append(1, str2.at(b));   
        b = 0x0f & bytes[i];
        str.append(1, str2.at(b));
    }
    return str;
}

二、16進(jìn)制字符串轉(zhuǎn)2進(jìn)制字符串?

方法1:?

string getBinStr(string hexStr) {
    long long val = strtoll(hexStr.c_str(), NULL, 16);
    string binStr = "";
    while (val > 0) {
        int remainder = val % 2;
        binStr.insert(binStr.begin(), '0' + remainder);
        val /= 2;
    }
    //不足長度的補(bǔ)0
    if (binStr.length() < 32) {  //這里的32為你實際要輸出的2進(jìn)制字符串的長度
        string temp = "";
        for (int i = 0; i < 32 - binStr.length(); i++) {
            temp.append("0");
        }
        binStr = temp.append(binStr);
    }
    return binStr;
}

方法2:?

//性能略優(yōu)于方法1
string getBinStr(string hexStr) {
    long long val = strtoll(hexStr.c_str(), NULL, 16);
    char binary[32];
    for (int i = 31; i >= 0; i--) 
    { 
        binary[31 - i] = '0' + ((val >> i) & 1);
    }
    string binStr(binary);
    return binStr;
}

方法3:文章來源地址http://www.zghlxwxcb.cn/news/detail-808195.html

#include <bitset>

//無法處理大于32位的數(shù)值。  性能與方法2差不多
string getBinStr(string hexStr) {
    long val = stol(hexStr.c_str(), NULL, 16);
    bitset<32> binaryNum(val);
    return binaryNum.to_string();
}

到了這里,關(guān)于C++篇——在linux下將字節(jié)轉(zhuǎn)16進(jìn)制字符串, 16進(jìn)制字符串轉(zhuǎn)2進(jìn)制字符串的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【C語言小技巧】16進(jìn)制字符串與字符串互轉(zhuǎn)

    平時我們在寫功能需求時,難免不會遇到需要將 16 進(jìn)制字符串轉(zhuǎn)換成字符串,或者字符串轉(zhuǎn)16進(jìn)制字符串的需求,所以就有了這篇文章。 在進(jìn)入主題之前,我們先來回顧一下字符和 16 進(jìn)制的關(guān)系。我們知道正常的 16 進(jìn)制數(shù)值(像 0x32 )和 ASIIC 碼( 0x32 對應(yīng)字符 2 )之間是互

    2024年02月02日
    瀏覽(28)
  • MFC 編輯框輸入16進(jìn)制字符串轉(zhuǎn)換為16進(jìn)制數(shù)或者10進(jìn)制數(shù)據(jù)計算

    1. 編輯框添加變量,并選擇變量類型為CString。 ?? ?CString m_strReg; ?? ?? ?DDX_Text(pDX, IDC_EDIT_REG, m_strReg); 2. 使用“strtoul”或“_tcstoul”函數(shù)將Cstring 類型轉(zhuǎn)換為16進(jìn)制/10進(jìn)制數(shù)進(jìn)行計算。 ?? ?CString tmp; ?? ?UpdateData(TRUE); ?? ?UpdateData(FALSE); ?? ? ?? ?OutputDebugString(m_strReg); ?

    2024年02月16日
    瀏覽(31)
  • 【byte類型數(shù)據(jù)轉(zhuǎn)換16進(jìn)制字符串】

    1.byte類型數(shù)據(jù)長度為8bit(8位), 例如00101110。 2.16進(jìn)制字符長度4bit(4位), 例如1101,表示D。 3.那么一個byte可以用2(8bit/4bit=2)個16進(jìn)制字符表示。 4. 1中的00101110可分為0010和1110兩部分。 5. 0010可以由00101110右移動4位獲得,即001011104。注意,在java中byte是無符號的,全為正的,所有應(yīng)該做

    2024年02月16日
    瀏覽(30)
  • C語言字符串轉(zhuǎn)換為16進(jìn)制

    方法二:自定義轉(zhuǎn)換函數(shù) 輸出結(jié)果: 這兩種方法都可以將C語言字符串逐個字符轉(zhuǎn)換為對應(yīng)的16進(jìn)制表示。第一種方法使用了sprintf函數(shù)來格式化輸出,第二種方法則是通過強(qiáng)制類型轉(zhuǎn)換將字符轉(zhuǎn)換為無符號字符(unsigned char),然后使用printf函數(shù)輸出對應(yīng)的十六進(jìn)制表示。

    2024年02月05日
    瀏覽(30)
  • C語言二進(jìn)制數(shù)據(jù)和16進(jìn)制字符串互轉(zhuǎn)

    知識點:結(jié)構(gòu)體中的“伸縮型數(shù)組成員”(C99新增) C99新增了一個特性:伸縮型數(shù)組成員(flexible array member),利用這項特性聲明的結(jié)構(gòu),其最后一個數(shù)組成員具有一些特性。第1個特性是,該數(shù)組不會立即存在。第2個特性是,使用這個伸縮型數(shù)組成員可以編寫合適的代碼,就

    2024年02月13日
    瀏覽(28)
  • Springboot使用Netty連接Tcp接口(c語言二進(jìn)制字節(jié)碼轉(zhuǎn)java字符串)

    一、引入netty的jar包 io.netty netty-all 二、使用netty框架 1、創(chuàng)建客戶端 package com.iflytek.digtal.netty; import io.netty.bootstrap.Bootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel; import io.netty.channel

    2024年02月20日
    瀏覽(27)
  • [C++]十六進(jìn)制和字符串互相轉(zhuǎn)化

    c4 :這個寫法是將二進(jìn)制右移四位,15的二進(jìn)制是:00001111,右移四位得到0000;所以第一位為0; c15 :這個是將二進(jìn)制和15的二進(jìn)制進(jìn)行位與運算:與運算是都是1才為1:00001111和00001111按位與得到00001111也就是lut[15] == E; 所以得到c為0E; 然后我們就得到了這一段非法字符的十六

    2024年02月15日
    瀏覽(29)
  • 【Golang】十六進(jìn)制字符串轉(zhuǎn)二進(jìn)制字符串

    在計算機(jī)科學(xué)中,我們經(jīng)常需要在不同進(jìn)制的數(shù)字之間進(jìn)行轉(zhuǎn)換。Go語言提供了一系列的標(biāo)準(zhǔn)庫來方便我們進(jìn)行這些進(jìn)制轉(zhuǎn)換。本文將介紹如何使用Go語言將十六進(jìn)制字符串轉(zhuǎn)換為二進(jìn)制字符串。 首先,我們定義一個函數(shù) hexToBinary 用于執(zhí)行這個轉(zhuǎn)換。該函數(shù)接受一個十六進(jìn)制

    2024年02月02日
    瀏覽(36)
  • C和指針(六)字符串、字符、字節(jié)

    字符串 1,C沒有顯式的字符串類型,以字符串常量形式出現(xiàn),存儲于字符數(shù)組中。 2,C字符串是一串以NUL字節(jié)結(jié)尾的字符。 1)字符內(nèi)部不能出現(xiàn)NUL字節(jié)。 2)NUL字節(jié)是字符串的終止符,不是字符串的一部分,所以字符串長度不包括NUL字節(jié)。 3,頭文件string.h包含了使用字符串

    2024年02月10日
    瀏覽(25)
  • 字符串(字節(jié))長度計算

    字節(jié)(Byte)是計算機(jī)信息技術(shù)用于計量存儲容量的一種計量單位,也表示一些計算機(jī)編程語言中的數(shù)據(jù)類型和語言字符。 一個字節(jié)(byte)8位(bit),十進(jìn)制表示0~255。 兩個字節(jié)16位,可表示十進(jìn)制0~65535。 Unicode 做了一件事,就是給世界上所有字符都分配了一個唯一的數(shù)

    2024年02月05日
    瀏覽(101)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包