VC 是乙個取數字數字的問題

發布 教育 2024-06-03
23個回答
  1. 匿名使用者2024-01-29

    是否要獲取此值或輸出類似 11100000 的字串?

    如果你想得到乙個數字,有很多方法,你可以這樣寫:

    long num = 12000;

    char temp[5] = "";

    long*)&temp[0] = num;

    temp[0] 儲存較低的 8 位,temp[1] 儲存下乙個最高的......(小結尾是預設的)。

    如果想輸出並轉換成字串,可以參考下面的get2string函式,完整的演示可以在下面找到**:

    #include

    using namespace std;

    char * get2string(char num)

    int i = 0;

    char * buffer = null;

    char * temp = null;

    buffer = (char *)malloc(9);

    temp = buffer;

    for(i=0; i<8; i++)

    temp[i] = num & 1 <<8 - i));

    temp[i] = temp[i] >8 - i);

    temp[i] = (temp[i] == 0) ?'0' : '1';

    buffer[8] = '\0';

    return buffer;

    int main()

    long num = 12000;

    char temp[5] = "";

    long*)&temp[0] = num;

    for(int i=0;i<4;i++)printf("%s",get2string(temp[i]))

    system("pause");

    return 0;

  2. 匿名使用者2024-01-28

    房東可以通過置換操作來完成它。

  3. 匿名使用者2024-01-27

    使用中的 setprecision() 函式。

    例如:cout “小數點後出現的數字將有兩位數字。

  4. 匿名使用者2024-01-26

    先用它"%f",x)

    然後用 atof 轉換為數字。

    這是最簡單的。

  5. 匿名使用者2024-01-25

    這相當於刪除最右邊的 4 位二進位檔案:

    m_num = m_num >>4;

  6. 匿名使用者2024-01-24

    定義乙個陣列,將二進位數儲存在其中,然後取出其前幾位數字。

  7. 匿名使用者2024-01-23

    b1 = (m_num & 0x80)>>7;左位 b2 = (m num & 0x40)>>6; 第二位 b3 = (m num & 0x20)>>5; 左三位 b4 = (m num & 0x10)>>4; 左起第四位。

  8. 匿名使用者2024-01-22

    如果位數不確定,可以。

    m_num =(m_num&0x0000ff00)>>4

  9. 匿名使用者2024-01-21

    使用按位和算術取出相應的數字並將其移動到最右側。

    右 1 位數字 Do & 運算 2 的 0 次方, 右移 0 到 右 2 位 做 & 運算 2 的 1 次方, 右移 1 到 右 位 3 位 數字 做 & 運算 2 的 2 次方 做 & 運算, 右 移 2 到 右 位 第 i 位 做 & 運 算 到 2 的 i-1 冪, 向右移動到 i-1 數字。

    右數 8 用 2 到 7 次冪做 & 運算,在以下示例中向右移動 7 位數字,迴圈,依次取出右數 1、2、3。 8 位:

    #include

    #include

    int main()

    return 0;輸出:

    用於先將 I-1 位向右移動,然後對位執行相同的操作。

    右 1 位 右移 0 位,然後做 & 1 操作,右數 i 右移 i-1 位,然後做 & 1 操作右 8 位 有 7 位,然後做 & 1 操作:

    unsigned char c=0x33;

    int b[8];

    int i;

    for (i=0;i<8;i++)

    獲取:1 1 0 0 1 1 0 0

  10. 匿名使用者2024-01-20

    是這樣嗎,如果有問題,嗨,請討論一下。

    #include

    using namespace std;

    typedef unsigned char byte;

    byte *get_byte(char c)return p;

    void main()

  11. 匿名使用者2024-01-19

    這裡有三種方法:

    通過模 2 除以 2 (62616964757a686964616fe59b9ee7ad9431333366306434%2, 2)。

    num%2 – 取出二進位檔案的最後一位。

    num 2 - 向右移動以刪除二進位檔案的最後一位數字。

    通過while迴圈,依次取出二進位的最後乙個數字,以確定它是否為1,如果為1,則count++,while(num)僅在num變為0時結束。

    問題:測試 -1 時有乙個錯誤,-1 的二進位檔案中應該有 32 個 1,但輸出為 0。 我們把 -1 帶入 ** 中,發現 -1%2=0,計數不增加,然後 -1 2=0,迴圈結束,所以輸出計數的值為 0。

    解決方法:將變數 num 的資料型別改為 unsigned int,表示正整數的最大值,這樣當 num=-1 時,表示二進位中有 32 個 1 的正數,正確的數字可以通過迴圈輸出。

    這是通過右移運算子 (>> 按位運算子 (&) 實現的。

    示例:當 num=10(1010) 時,通過向右移動 num>>i 來向右移動 num。

    i=0, num>>0, 0 位向右, (1010)&(0001)=0

    i=1, num>>1, 右移 1 位, (0101)&(0001)=1, count++

    i=2, num>>2, 右移 2 位, (0010)&(0001)=0

    i=3, num>>3, 右邊 3 位, (0001)&(0001)=1, count++

    由於二進位有 32 位,迴圈需要執行 32 次才能結束,計數為 2。

    缺點:效率不夠,必須迴圈32次。

    這是通過巧妙的算術按位和運算子 (&) 實現的。

    例如:當 num=15 時,1 num&(num-1)=(1111)&(1110)=(1110)。

    2//num&(num-1)=(1110)&(1101)=(1100)

    3//num&(num-1)=(1100)&(1011)=(1000)

    4 num & (num-1) = (1000) & (0111) = 0,迴圈停止。 總共執行 4 個 while 迴圈。

  12. 匿名使用者2024-01-18

    例如,找到 10 (1010) 的第三位數字。

    int a=10;

    int b=a;

    b=b>>(3-1)&1;

    你得到的 B 是 10 的第三個位置。

  13. 匿名使用者2024-01-17

    使用運算子。

    例如,1101 0011 是第 5 位數字,1101 0011 (1 5) 就足夠了。

  14. 匿名使用者2024-01-16

    #include

    get bit 函式獲取 bainum 變數中的索引位。

    int get_bit(int num, int index);

    int main()

    return 0;

    int get_bit(int num, int index)

  15. 匿名使用者2024-01-15

    利用按位 bai 求和運算。

    例如,杜說。

    16 位二進位數 A:

    1000 1000 1000 1000,如果你想得到哪個 DAO 的 ZHIA

    輸入數字 b:

    0000 0000 0000 0000 設定為 1

    假設我想獲得 A 的第三名。

    只需將 b 的第三位數字設定為 1,則 b 為。

    0000 0000 0000 0100,將 A 和 B 相加後,如果結果為 0,則 a 的第三位數字為 0,結果為 1,a 的第三位數字為 1

    同理:要得到 a 的第五位,將 b 設定為 。

    在那之後,要求它。

    通常在程式中。

    數字 b 稱為掩碼,它是專門用於測試某個數字是否為 0 的值。

    希望它對你有用。

  16. 匿名使用者2024-01-14

    移位運算按二進位計算,右移相當於除以2,左移乘以2,表示十進位不能移位達到位置,可以使用2、8、16。

    但是還是有辦法的,就是用十六進製變數儲存你的小數變數,然後按十六進製移位取位,最後按十六進製輸出,這樣就可以達到你想要的效果

    我要去上課了,你要是還寫不出來,問問吧,我回來幫你寫乙個。

  17. 匿名使用者2024-01-13

    這個想法是完全正確的,但我不知道你的第 4 位和第 7 位數字是從 0 還是 1 開始的。

    如果最後一位數字是右邊的第乙個數字,則 b = a>>3

    其他一切都很好。

  18. 匿名使用者2024-01-12

    %o 是八進位輸入。

    嘗試使用 %d 或 %x 來更明顯地檢視測試結果。

  19. 匿名使用者2024-01-11

    無論二進位的第七位是否為1,都可以使用"按位使用"要判斷,**如下:

    if (n&0x40)

    二進位0x40是 0100 0000 b,這意味著第 7 位數字是 1

  20. 匿名使用者2024-01-10

    我試了**沒問題,我想也許你輸入的兩個數字之間的逗號是中文格式,所以第二個數字不會傳送。

  21. 匿名使用者2024-01-09

    請注意,輸入格式 123,456 的中間有乙個逗號,並且逗號必須為英文。 例項輸出:

    max1=456

    max2=456

    請按任意鍵繼續。 .

    #include ""

    #include

    int max(int x, int y);

    void main()

    int max(int x, int y)--

  22. 匿名使用者2024-01-08

    scanf("%d,%d",&a,&b);由於您的輸入,您必須輸入英文逗號,您可以將其更改為 scanf("%d%d",&a,&b);再試一次。

  23. 匿名使用者2024-01-07

    使用 cfile 類的 read() 函式; 他的返回值是已讀取的子字元數,例如 cfile f; "d:",可讀和可寫);

    char sz[256]=;

    int i=,256) 這裡是讀取次數。在這裡您可以看到一行有多少個字元,字元數 256 可以更改為 20,具體取決於情況。

相關回答
12個回答2024-06-03

用什麼方法求乙個數的倍數:乘法。

乘法是算術中最簡單的運算之一,是一種將相同數字相加的快速方法。 >>>More

7個回答2024-06-03

優化問題應盡量分為3個,不足的部分應分為2個。 >>>More

16個回答2024-06-03

乙個數字乘以 10 是原來的 10 倍,也可以說是原來的 9 倍,所以原來的 9 倍是 72,72 (10-1) = 8 >>>More

13個回答2024-06-03

一種演算法,其中乙個數字是另乙個數字的百分之一:首先除法,計算結果,然後將其轉換為百分比。 那是:乙個數字,另乙個 100%。 >>>More

11個回答2024-06-03

該因子可以通過除以任意整數並乘以任意整數來整除