欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
4位數如何做可以讓它的排列方向倒過來?
[打印本頁]
作者:
君工創
時間:
2026-1-31 00:17
標題:
4位數如何做可以讓它的排列方向倒過來?
4位數如何做可以讓它的排列方向倒過來。如:1011,把它排成:1101。從1到15。每個數都倒排位置。
作者:
joyb
時間:
2026-2-1 08:17
數分詞成char,for倒序,strtod
作者:
WL0123
時間:
2026-2-1 09:59
把這個代碼稍改一下即可
unsigned char Conversion(unsigned char dat)
{
unsigned char i,temp;
for(i=0;i<8;i++)
{
temp <<= 1;
temp += dat & 0x01;
dat >>= 1;
}
return temp;
}
作者:
qsssuv
時間:
2026-2-2 08:14
做一個常量數組,進行映射就好了
作者:
ringhui
時間:
2026-2-2 10:56
#include <stdio.h>
/*
* 函數:reverse_4bit
* 功能:將輸入的4位二進制數(0-15)的位順序反轉
* 輸入:num (0-15)
* 輸出:反轉后的數值
*/
unsigned char reverse_4bit(unsigned char num)
{
unsigned char result = 0;
/* 分別取出每一位,放到鏡像位置 */
if (num & 0x01) result |= 0x08; /* Bit 0 -> Bit 3 */
if (num & 0x02) result |= 0x04; /* Bit 1 -> Bit 2 */
if (num & 0x04) result |= 0x02; /* Bit 2 -> Bit 1 */
if (num & 0x08) result |= 0x01; /* Bit 3 -> Bit 0 */
return result;
}
/* 輔助函數:用于打印4位二進制格式 (C89兼容) */
void print_binary(unsigned char num)
{
unsigned char mask;
for (mask = 0x08; mask > 0; mask >>= 1) {
if (num & mask) {
putchar('1');
} else {
putchar('0');
}
}
}
void main(void)
{
unsigned char i;
unsigned char reversed_val;
/* 遍歷1到15 */
for (i = 1; i <= 15; i++) {
reversed_val = reverse_4bit(i);
/* 打印結果,格式:原值(二進制) -> 結果(二進制) */
/* 注意:Keil C51環境中printf通常需要重定向串口才能在電腦看到,
這里僅展示邏輯,實際使用請根據具體硬件環境調整輸出方式 */
printf("%d (", (int)i);
print_binary(i);
printf(") -> %d (", (int)reversed_val);
print_binary(reversed_val);
printf(")\r\n");
}
while(1); /* 程序死循環,防止跑飛 */
}
GLM-4.7給出的答案
作者:
君工創
時間:
2026-2-14 17:19
謝謝上面幾位的熱心幫助!我現在用的是查表法。
作者:
君工創
時間:
2026-2-14 17:24
ringhui 發表于 2026-2-2 10:56
#include
/*
你這個方法易懂、明白,逐位識別,到對應位組合。謝謝你!
作者:
tyrl800
時間:
2026-2-14 19:21
#include<reg51.h>
unsigned char bdata tmp;
sbit b0=tmp^0;
sbit b1=tmp^1;
sbit b2=tmp^2;
sbit b3=tmp^3;
void main(void)
{
unsigned char x,y;
while(1)
{ y=0;
tmp=x;
y=b0*8|b1*4|b2*2|b3;
}
}
作者:
人中狼
時間:
2026-2-14 21:24
發表于 2026-2-2 10:56
#include
/*
抱歉,看錯了,沒問題的
作者:
Hephaestus
時間:
2026-2-15 23:03
x = (x & 0x55555555) << 1 | (x & 0xAAAAAAAA) >> 1;
x = (x & 0x33333333) << 2 | (x & 0xCCCCCCCC) >> 2;
x = (x & 0x0F0F0F0F) << 4 | (x & 0xF0F0F0F0) >> 4;
x = (x & 0x00FF00FF) << 8 | (x & 0xFF00FF00) >> 8;
x = (x & 0x0000FFFF) << 16 | (x & 0xFFFF0000) >> 16;
復制代碼
hacker's delight這本書里面的位轉置算法,適合32位運算,樓主只要求轉置4位,那還是查表法最好。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1